function Browser(){
	var ua = navigator.userAgent.toLowerCase(); 
	this.Gecko = (ua.indexOf('gecko') != -1 && ua.indexOf('safari') == -1);
	this.Safari = (ua.indexOf('safari') != - 1);
	this.IE = (ua.indexOf('msie') != -1 && !this.Opera && (ua.indexOf('webtv') == -1) ); 
	this.Mozilla = (this.Gecko && ua.indexOf('gecko/') + 14 == ua.length);
	this.Firefox = ( (ua.indexOf('firebird/') != -1) || (ua.indexOf('firefox/') != -1) );
	this.NS = ( (this.Gecko) ? (ua.indexOf('netscape') != -1) : ( (ua.indexOf('mozilla') != -1) && !this.Opera && !this.Safari && (ua.indexOf('spoofer') == -1) && (ua.indexOf('compatible') == -1) && (ua.indexOf('webtv') == -1) && (ua.indexOf('hotjava') == -1) ) );
	this.IECompatible = ( (ua.indexOf('msie') != -1) && !this.IE);
	this.NSCompatible = ( (ua.indexOf('mozilla') != -1) && !this.NS && !this.Mozilla);
	this.geckoVersion = ( (this.Gecko) ? ua.substring( (ua.lastIndexOf('gecko/') + 6), (ua.lastIndexOf('gecko/') + 14) ) : -1 );
	this.equivalentMozilla = ( (this.Gecko) ? parseFloat( ua.substring( ua.indexOf('rv:') + 3 ) ) : -1 );
	this.versionMinor = parseFloat(navigator.appVersion); 
	if (this.Gecko && !this.Mozilla) this.versionMinor = parseFloat( ua.substring( ua.indexOf('/', ua.indexOf('gecko/') + 6) + 1 ) );
	else if (this.Mozilla) this.versionMinor = parseFloat( ua.substring( ua.indexOf('rv:') + 3 ) );
	else if (this.IE && this.versionMinor >= 4) this.versionMinor = parseFloat( ua.substring( ua.indexOf('msie ') + 5 ) );
	else if (this.Safari) this.versionMinor = parseFloat( ua.substring( ua.lastIndexOf('safari/') + 7 ) );
	this.versionMajor = parseInt(this.versionMinor); 
	this.DOM1 = (document.getElementById);
	this.DOM2Event = (document.addEventListener && document.removeEventListener);
	this.mode = document.compatMode ? document.compatMode : 'BackCompat';
	this.Win = (ua.indexOf('win') != -1);
	this.Win32 = (this.Win && ( ua.indexOf('95') != -1 || ua.indexOf('98') != -1 || ua.indexOf('nt') != -1 || ua.indexOf('win32') != -1 || ua.indexOf('32bit') != -1 || ua.indexOf('xp') != -1) );
	this.Mac = (ua.indexOf('mac') != -1);

	this.NS4 = (this.NS && this.versionMajor == 4);
	this.NS6x = (this.NS && this.versionMajor == 6);
	this.NS6up = (this.NS && this.versionMajor >= 6);
	this.NS7x = (this.NS && this.versionMajor == 7);
	this.NS7up = (this.NS && this.versionMajor >= 7);

	this.IE4 = (this.IE && this.versionMajor == 4);
	this.IE4up = (this.IE && this.versionMajor >= 4);
	this.IE5 = (this.IE && this.versionMajor == 5);
	this.IE55 = (this.IE && this.versionMinor == 5.5);
	this.IE5up = (this.IE && this.versionMajor >= 5);
	this.IE6x = (this.IE && this.versionMajor == 6);
	this.IE6up = (this.IE && this.versionMajor >= 6);
}

var is = new Browser();









if (!Array.prototype.push) {
	Array.prototype.push=function (val) {
		Array[Array.length]=val;
	}
}

function MagicFormCheck(MyName, formID, lang) {
	this.name=MyName;
	if (lang) {
		this.lang=lang;
	}else{
		this.lang='TR';
	}
	if (formID) {
		this.formID=formID;
	}else{
		this.formID;	
	}
	this.checkPoints=new Array();
	this.initiated=false;
}

function MagicElementCheck(MyName, elementID, elementLabel, checkType, checkParameters, varType) {
	this.name=MyName;
	
	if (elementID) {
		this.elementID=elementID;
	}else{
		this.elementID;
	}
	if (elementLabel) {
		this.elementLabel=elementLabel;
	}else{
		this.elementLabel;
	}
	if (checkType) {
		this.type=checkType;
	}else{
		this.type;
	}
	if (checkParameters) {
		this.checkParameters=checkParameters.split('|');
	}else{
		this.checkParameters=new Array();
	}
	if (varType) {
		this.varType=varType;
	}else{
		this.varType;
	}
}

MagicFormCheck.prototype.initiate=function () {
	for (i=0;i<=this.checkPoints.length-1;i++) {
		if (this.checkPoints[i].varType) {
			this.activateElementControl(this.checkPoints[i]);
		}
	}
	this.initiated=true;
}

MagicFormCheck.prototype.resetAllCheck=function () {
	this.checkPoints=new Array();
	this.initiated=false;
}

MagicFormCheck.prototype.addNewCheck=function (obj) {
	this.checkPoints[this.checkPoints.length]=obj;
}

MagicFormCheck.prototype.activateElementControl=function (obj) {
	switch (obj.varType) {
		case 'numeric':
			o=document.forms[this.formID].elements[obj.elementID];
			o.onkeypress=this.onlyNumber;
		break;
		case 'email':
			o=document.forms[this.formID].elements[obj.elementID];
			//o.onkeypress=this.onlyEmail;
		break;
		case 'nonumber':
			o=document.forms[this.formID].elements[obj.elementID];
			o.onkeypress=this.onlyLetter;
		break;
	}
}

MagicFormCheck.prototype.checkLengthMax=function(objInput,p) {
	cVal=(objInput.value).length;
	if (cVal>p) {
		return false;
	}else{
		return true;
	}
}

MagicFormCheck.prototype.checkOptional=function(objInput,p) {
	cVal=(objInput.value);
	if (cVal.length>0 && cVal.length<p) {
		return false;
	}else{
		return true;
	}
}

MagicFormCheck.prototype.checkLengthMin=function(objInput,p) {
	cVal=(objInput.value).length;
	if (cVal<p) {
		return false;
	}else{
		return true;
	}
}

MagicFormCheck.prototype.checkRadioButton=function (objInput,p) {
	var temp=true;
	for (boxes=0;boxes<=objInput.length-1;boxes++) {
		if (objInput[boxes].checked==true) {
			temp=false;
			break;
		}
	}
	return temp;
}

MagicFormCheck.prototype.checkLengthMin=function(objInput,p) {
	cVal=(objInput.value).length;
	if (cVal<p) {
		return false;
	}else{
		return true;
	}
}

MagicFormCheck.prototype.checkPassword=function(objInput,p) {
	cVal1=(objInput.value);
	cVal2=(p.value);
	
	
	if (cVal1!=cVal2) {
		return false;
	}else{
		return true;
	}
}

MagicFormCheck.prototype.checkEMail=function (objInput) {
	TmpStr=objInput.value;
	if (TmpStr==""){ return false;}
	else{
		var i, atPos, atPos2, InvalidChars=" üÜðÐýþÞÝçÇöÖ!#/*{[()]}";

		for (i=0; i<InvalidChars.length; i++)
			if (TmpStr.indexOf(InvalidChars.charAt(i)) != -1) {
				return false;
			}
		atPos = TmpStr.indexOf("@");
		atPos1 = TmpStr.indexOf(".");
		atPos2 = TmpStr.indexOf("@", atPos+1);
		
		if ((atPos < 1) || (atPos1 < 1) || (atPos2 != -1)) {
			return false;
		} else{
				atPos3=new Array;
				atPos3 = TmpStr.split("@");
				
				atPos4=new Array;
				atPos4 = atPos3[1].split(".");

				if(atPos4[1].length<2 || atPos4[0].length<1) {
					return false;
				}

			return true;
		}
		return true;
	}
}

MagicFormCheck.prototype.checkSelectBox=function (objSelect) {
	cVal=objSelect.options.selectedIndex;
	if (cVal<1){
		return false;
	}  else {
		return true;
	}
}

MagicFormCheck.prototype.returnMessage=function (label,m,pA) {
	messageTxt=this.repl(MESSAGES[m],'{LABEL}',label);
	
	if (pA) {
		pA+='';
		pArray=pA.split('|');
		for (k=0;k<=pArray.length-1;k++) {
			kk=k+1;
			messageTxt=this.repl(messageTxt,'{PARAMETER'+kk+'}', pArray[k]);
		}
	}
	alert(messageTxt);
}

MagicFormCheck.prototype.repl=function(mainString,str1,str2) {
	tmpA=mainString.split(str1);
	tmpStr='';
	for (j=0;j<=tmpA.length-1;j++) {
		if (j<tmpA.length-1) {
			tmpStr+=tmpA[j]+str2;
		}else{
			tmpStr+=tmpA[j];
		}
	}
	return tmpStr;
}

MagicFormCheck.prototype.check=function (id) {
	OK=true;
	if (this.initiated==false) {
		return false;
	}

	for (i=0;i<=this.checkPoints.length-1;i++) {
		checkObj=this.checkPoints[i];
		switch (checkObj.type) {
			case 'MINLENGTH':
				p=parseInt(checkObj.checkParameters[0]);
				o=document.forms[this.formID].elements[checkObj.elementID];
				r=this.checkLengthMin(o,p);
				if (!r) {
					if (p==1) {
						this.returnMessage(checkObj.elementLabel,1);
					}else{
						this.returnMessage(checkObj.elementLabel,3,p);
					}
					o.focus();
					o.style.backgroundColor="#fffbec";
					return false;
				} 
				break;

			case 'MAXLENGTH':
				p=parseInt(checkObj.checkParameters[0]);
				o=document.forms[this.formID].elements[checkObj.elementID];
				r=this.checkLengthMax(o,p);
				if (!r) {
					this.returnMessage(checkObj.elementLabel,2,p);
					o.focus();
					return false;
				} 
				break;

			case 'OPTIONAL':
				p=parseInt(checkObj.checkParameters[0]);
				o=document.forms[this.formID].elements[checkObj.elementID];
				r=this.checkOptional(o,p);
				if (!r) {
					this.returnMessage(checkObj.elementLabel,7,p);
					o.focus();
					return false;
				} 
				break;
				
			case 'E-MAIL':
				o=document.forms[this.formID].elements[checkObj.elementID];
				r=this.checkEMail(o);
				if (!r) {
					this.returnMessage(checkObj.elementLabel,5);
					o.focus();
					return false;
				} 
				break;

			case 'PASSWORD':
				
				p=checkObj.checkParameters[0];
				
				po=document.forms[this.formID].elements[checkObj.checkParameters[0]];
				o=document.forms[this.formID].elements[checkObj.elementID];
				
				r=this.checkPassword(o,po);
				if (!r) {
					this.returnMessage(checkObj.elementLabel,4);
					o.focus();
					o.style.backgroundColor="#fffbec";
					return false;
				} 
				break;

			case 'SELECTBOX':
				o=document.forms[this.formID].elements[checkObj.elementID];
				r=this.checkSelectBox(o);
				if (!r) {
					this.returnMessage(checkObj.elementLabel,1);
					o.focus();
					o.style.backgroundColor="#fffbec";
					return false;
				} 
				break;

			case 'RADIO':
				o=document.forms[this.formID].elements[checkObj.elementID];
				r=this.checkRadioButton(o);
				if (r) {
					this.returnMessage(checkObj.elementLabel,6);
					//o.focus();
					return false;
				} 
				break;
		}
	}

	if(id){
		activate(id);
	}
	return true;
}

MagicFormCheck.prototype.onlyLetter=function(e) {
	var keyCode = (is.NS) ? e.which : event.keyCode;
	if (keyCode > 47 && keyCode<58){
	return false;}
}

MagicFormCheck.prototype.onlyNumber=function(e) {
	var keyCode = (is.NS) ? e.which : event.keyCode;
	
	if ((keyCode<48 || keyCode>57)&&keyCode!=8&&keyCode!=0) {
	return false;}
}

MagicFormCheck.prototype.onlyEmail=function(e) {
	var InvalidChars=" !#/*{[()]},;^><\\?+:`|";

	kCode=InvalidChars.charAt(5);

	var keyCode = (is.NS) ? e.which : event.keyCode;

	if (keyCode>127) {
		return false;
	}
	for (i=0;i<=InvalidChars.length-1;i++) {
		if (keyCode==InvalidChars.charCodeAt(i)) {
			return false;
		}
	}
	return true;
}
