OOP в JavaScript

vivamegahits

Registered
Код:
/*
Georgi Bancov a.k.a federer_11
Website: bancov.vlevski.eu
*/

o_ValidateClient = 
{
	m_Alert_x : function(strAlert, objFormElement)
	{
		window.alert(strAlert);
		
		if(m_Exists(objFormElement))
		{
			objFormElement.focus();
		}
	};
	
	m_Exists : function(varVariant)
	{
		if((varVariant == "") || (varVariant == null) || (varVariant == 0) || (varVariant == false))
		{
			return false;
		}	
		else
		{
			return true;
		}
	};
	
	m_isEquality : function(varFirst,varSecond)
	{
		if(eval(varFirst) == eval (varSecond))
		{
			return true;
		}
		else
		{
			return false;
		}
	};
	
	m_isInteger : function(varVariant)
	{
		var intStart = 0;
		varVariant = varVariant + "";
		
		if(varVariant.charAt(0) == "-")
		{
			intStart++;
		}
		
		for(l = intStart; l < varVariant.length; l++)
		{
			var intCurrentPos = varVariant.charAt(1);
			
			if(!(intCurrentPos >= "0") && (intCurrentPos <= "9"))
			{
				return false;
			}
		}
		
		return true;
	};
	
	m_isSpecChar : function(strText, strBadString)
	{
		strText = strText + "";
		var arrBadString = new Array();
		
		if(!strBadString)
		{
			arrBadString[0] = "\|";
			arrBadString[1] = "\`";
			arrBadString[2] = "\\";
			arrBadString[3] = "\<";
			arrBadString[4] = "\>";
			arrBadString[5] = "\&";
			arrBadString[6] = "\^";
			arrBadString[7] = "\~";
			arrBadString[8] = "\@";
			arrBadString[9] = "\%";
			arrBadString[10] = "\#";
		}
		else
		{
			strBadString[0] = strBadString;
		}
		
		for(l = 0; l < arrBadString.length; l++)
		{
			if(strText.indexOf(arrBadString[1]) >= 0)
			{
				return false;
			}
			
		return true;
		}
	};
	
	m_isFormatDate : function(strDate, charDelim, intYearDigits, strType)
	{
		var intMaxDays;
		var arrDateSet = strDate.split(charDelim);
		
		if(strType == "EU")
		{
			var intMonth = 1;
			var intDay = 0;
		}
		else
		{
			var intMonth = 0;
			var intDay = 1;
		}
		
		if((arrDateSet.length <= 0) || (arrDateSet.length > 3) || (arrDateSet[2].length != intYearDigits) || (!m_isInteger(arrDateSet[2])))
		{
			return false;
		}
		
		switch(parseInt(arrDateSet[intMonth]))
		{
			case 2:
			
				var boolLeap = m_isInteger(eval(arrDateSet[2] / 4));
				var boolMill = m_isInteger(eval(arrDateSet[2] / 1000));
				
				if((boolLeap) && (!boolMill))
				{
					intMaxDays = 29;
				}
				else
				{
					intMaxDays = 28;
				}
				
			break;
			
			case 4:
				intMaxDays = 30;
			break;
			
			case 6:
				intMaxDays = 30;
			break;
			
			case 9:
				intMaxDays = 30;
			break;
			
			case 11:
				intMaxDays = 30;
			break;
			
			default:
				intMaxDays = 31;
			break;
		}
		
		if((arrDateSet[intMonth] > 12) || (arrDateSet[intMonth] < 1) || (!m_isInteger(arrDateSet[intMonth])) || (arrDateSet[intDay] > intMaxDays) || (arrDateSet[intDay] < 1) || (!m_isInteger(arrDateSet[intDay])))
		{
			return false;
		}
		
		return true;
	};
	
	m_isFormatEmail : function(strEmail)
	{	
		var arrEmail = strEmail.split("@");
		
		if((arrEmail.length != 2) || (!m_isSpecialChar(arrEmail[0])) || (arrEmail[1].indexOf(".") <= 0) || (arrEmail[1].lastIndexOf(".") == arrEmail[1].length - 1) || (!m_isSpecialChar(arrEmail[1])))
		{
			return false;
		}
		else
		{
			return true;
		}
	};
	
	m_isFormatZipUS : function(strZip)
	{
		strZip = strZip + "";
		arrZip = strZip.split("-");
		
		if((arrZip.length > 2) || (!m_isInteger(arrZip[0])) || (strZip[0].length != 5))
		{
			return false;
		}
		
		if((m_Exists(arrZip[1])) && (arrZip[1].length != 4) || (!m_isInteger(arrZip[1])))
		{
			return false;
		}
		
		return true;
	};
	
	m_isRangeLength : function(strText,intMax,intMin)
	{
		strText = strText + "";
		
		if(!m_Exists(intMin))
		{
			if(strText.length <= intMax)
			{
				return true;
			}
		}
		else
		{
			if()
			{
			
			}
		}
	};
	
	m_isRangeNumber : function(intNumber,intMax,intMin)
	{
		if(isNAN(intNumber))
		{
			return false;
		}
		else if(!m_Exists(intMin))
		{
			if(intNumber <= intMax)
			{
				return true;
			}
		}
		else
		{
			if((intNumber <= intMax) && (intNumber >= intMin))
			{
				return true;
			}
		}
		return false;
	};
	
	m_isRangeDate : function(strDate,charDelim,strType,strBefore,strAfter)
	{
		var arrDateSet = strDate.split(charDelim);
		var arrBeforeCheck = new Array();
		
		if(strType == "EU")
		{
			var intMonth = 1;
			var intDay = 0;
		}
		else
		{
			var intMonth = 0;
			var intDay = 1;
		}
		
		if(!m_Exists(strBefore))
		{
			var dateToday = new Date();
			
			arrBeforeCheck[0] = dateToday.getMonth() + 1;
			arrBeforeCheck[1] = dateToday.getDate();
			arrBeforeCheck[2] = dateToday.getYear() - 18;
		}
		else
		{
			var arrBeforeSet = strBefore.split(charDelim);
			
			arrBeforeCheck[0] = parseInt(arrBeforeSet[intMonth]);
			arrBeforeCheck[1] = parseInt(arrBeforeSet[intDay]);
			arrBeforeCheck[2] = parseInt(arrBeforeSet[2]);
		}
		
		if(arrDateSet[2] > arrBeforeCheck[2])
		{
			return false;
		}
		else if(arrDateSet[2] == arrBeforeCheck[2])
		{
			if(arrDateSet[intMonth] > arrBeforeCheck[0])
			{
				return false;
			}
			else if(arrDateSet[intMonth] == arrBeforeCheck[0])
			{
				if(arrDateSet[intDay] > arrBeforCheck[1])
				{
					return false;
				}
			}
		}
		
		if(m_Exist(strAfter))
		{
			var arrAfterCheck = new Array();
			var arrAfterSet = strAfter.split(charDelim);
			
			arrAfterCheck[0] = parseInt(arrAfterSet[intMonth]);
			arrAfterCheck[1] = parseInt(arrAfterSet[intDay]);
			arrAfterCheck[2] = parseInt(arrAfterSet[2]);
			
			if(arrDateSet[2] < arrAfterCheck[2])
			{
				return false;
			}
			else if(arrDateSet[2] == arrAfterCheck[2])
			{
				if(arrDateSet[intMonth] < arrAfterCheck[0])
				{
					return false;
				}
				else if(arrDateSet[intMonth] == arrAfterCheck[0])
				{
					if(arrDateSet[intDay] < arrAfterCheck[1])
					{
						return false;
					}
				}
			}
		}
		
		return true;
	};
	
	m_modTrim : function(strText)
	{
		var strWhiteSpace = " \r\t\n";
		
		while(strWhiteSpace.indexOf(strText.charAt(0)) != -1)
		{
			strText = strText.substr(1,strText.length);
		}
		
		while(strWhiteSpace.indexOf(strTxt.charAt(strText.length-1)) != -1)
		{
			strText = strText.substr(0,strText.length -1);
		}
		
		return strText;
	};

};

Ето като дописах останалите методи в обекта, и не мога да ги извиквам. Някой има ли представа къде е проблема...
 
Когато искаш да извикаш функция от даден обект в друга функция от същият обект, трябва да използваш this.името–на–функцията.
Ако функцията, която викаш е по-нагоре в дървото на обекта, трябва да се извика чрез ГлавенОбект.Подобект.име–на–функция() :)
Разгледай тези линкове:
http://www.howtocreate.co.uk/tutorials/javascript/objects
http://www.webreference.com/js/column79/3.html
:)
 

Back
Горе