// JavaScript Document// JavaScript Document
// get value functions by ever
// this is a simple get functions that checks when the developers has a wrong syntax when making a get function

var loaderko = '<img src="../images/ajax-loader.gif">'
loaderko += '<span style="color:#CCCCCC; font-size:14px; font-weight:bold;"> &nbsp; &nbsp; &nbsp; Please wait while the page loads..</span>'

function E(id) {
	var a = document.getElementById(id)
	return a
}

// initiate at first load
function $I(I) {	
	if (window.addEventListener) { //FF //Safari 
		window.addEventListener("load", I, false); 
	} else if (window.attachEvent) { // EI
		window.attachEvent("onload", I);
	}
}

var B = {
	K: function(x) { return x },
	E: function (id) { 
		var a = document.getElementById(id)
		return a
	},
	IE:     !!(window.attachEvent && !window.opera),
    Opera:  !!window.opera,
    WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1,
    Gecko:  navigator.userAgent.indexOf('Gecko') > -1 && navigator.userAgent.indexOf('KHTML') == -1,
    MobileSafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/)
    
};

	
	
	
// pop up calendar
var divPop = {
	
	opwin: function () {
		r = window.open('../cal/rep.php', 'win','width=600,  height= 430');
		r.focus();
	},
	timeout : function () {
	a = window.setInterval(this.opwin, (5*1000));

	},
	yourdiv: function (e) {
		var a = '<form id="form1" name="form1" method="post" action="">'
		a += '<input type="text" name="textfield" />'
		a += '<input type="text" name="textfield2" />'
		a += '</form>'
		B.E(e).innerHTML = a;
	},
	getRealTop: function (el){
		yPos = document.getElementById(el).offsetTop;
		tempEl = document.getElementById(el).offsetParent;
		while (tempEl != null) {
		yPos += tempEl.offsetTop;
		tempEl = tempEl.offsetParent;
		}
		return yPos;
	},
	
	getRealLeft: function (el){
		xPos = document.getElementById(el).offsetLeft;
		tempEl = document.getElementById(el).offsetParent;
		while (tempEl != null) {
		xPos += tempEl.offsetLeft;
		tempEl = tempEl.offsetParent;
		}
		return xPos;
	},

	showme: function (a,b,c,d,e, event,el) {
		yconPos = this.getRealTop('cal')// of the the div container
		xconPos = this.getRealLeft('cal')
		
		ybutPos = this.getRealTop(el)// the button position
		xbutPos = this.getRealLeft(el)
		
		//alert(yconPos)

		B.E(e).style.visibility = 'visible'
		//B.E(e).style.position = 'absolute'		
		var x = event.clientX
		var y = event.clientY
		
		if(B.IE) {// if IE
			B.E(e).style.top = ybutPos-(yconPos-100)+'px' //TOP  -->Y == top
			B.E(e).style.left = xbutPos-(xconPos)+'px' //--> LEFT == X	
			
		}else{
			B.E(e).style.top = ybutPos-yconPos+'px' //TOP  -->Y == top
			B.E(e).style.left = xbutPos-xconPos+'px' //--> LEFT == X
		}

		$X(a,b,c,d)
		
		/*
		//ee = (B.E(e).style.visibility == 'visible') ? 'hidden' : 'visible';
		B.E(e).style.visibility = 'visible'
		var x = event.clientX
		var y = event.clientY
		//B.E(e).style.left = x+'px'
		//B.E(e).style.top = y+20+'px'
		B.E(e).style.left = x-250+'px'
		B.E(e).style.top = y-170+'px'
		B.E(day).value = g
		B.E('displayDay').innerHTML = g
		*/
		
		//this.yourdiv(e)		
	},
	showmeAjax: function (e, event,g,day) {
		//ee = (B.E(e).style.visibility == 'visible') ? 'hidden' : 'visible';
		
		B.E(e).style.visibility = 'visible'

		var x = event.clientX
		var y = event.clientY
		//B.E(e).style.left = x+'px'
		//B.E(e).style.top = y+20+'px'
		B.E(e).style.left = x-250+'px'
		B.E(e).style.top = y-170+'px'
		B.E(day).value = g
		B.E('displayDay').innerHTML = g
		
		
		//this.yourdiv(e)		
	},
	hideme: function (e) {
		B.E(e).style.visibility = 'hidden'
	},

	position: function(e) {
	
	
	},
	passvalue: function() {
		
	}
	
};

var message = { 
	kompirm: function () {
		var answer = confirm ("Please Read the data carefully before saving! then click yes/ok")
		if (answer)
		alert ("The file will be saved in database!")
		else
		return false;
	},
	validate: function (str) {
		//str = toString(str)
		b = (str).replace(/^\s*|\s*$/g,''); // remove the white spaces
		c= b.split("::")
		
		
		// format first the text
		vstring = []		
		for(i=0; i<c.length; i++) {
			if(c[i].indexOf("!")== -1) {
				v = c[i]+"!nothing==nothing"
			}else {
				v = c[i]
			}
			vstring.push(v)
		}
		ff = vstring.toString()
		ff = ff.replace(/\!/g, ",")
		ff = ff.split(",")
		var field = []
		var tempval = []
		
		for(i=0; i<ff.length; i++) {
			if(i%2 == 0) {
				field.push(ff[i])
	
			}else {
				tempval.push(ff[i])
			}
		}// end for
		
		tempval = tempval.toString();
		tempval = tempval.replace(/==/g, ",")
		tempV = tempval.split(",")
		var val = []
		var valid = []
		for(k=0; k<tempV.length;k++) {
			if(k%2 == 0) {
			valid.push(tempV[k])
			}else {
			val.push(tempV[k])
			}
		}// end for		
		
		var newstring = []
		for(i=0; i<c.length; i++) {
		
			if(valid[i] == "blank") {
				if(B.E(field[i]).value == "") {
					alert("Please don't leave the "+val[i]+" blank")
					B.E(field[i]).focus()
					return 
				}

			}else if(valid[i] == "email") {
				
				
				if(B.E(field[i]).value.indexOf('a')== -1) {
					alert("Please provide a valid email address")
					B.E(field[i]).focus()
					return
				}
			}else if(valid[i] == "match") {
				if(B.E(field[i]).value != B.E(field([i]+'1')).value) {
					alert("The "+ val[i] + " did not match!")
					B.E(field[i]).focus()
					return
				}
			}else if(valid[i] == "blankmatch") {
				//alert(B.E(field[i]+"1").value)
				
				if(B.E(field[i]).value == "") {
					alert("Please don't leave the "+val[i]+" blank")
					B.E(field[i]).focus()
					return 
				}else if(B.E(field[i]+"1").value == "") {
					alert("Please retype "+val[i])
					B.E(field[i]+"1").focus()
					return 
				}else if(B.E(field[i]).value != B.E(field[i]+"1").value) {
					alert("The "+ val[i] + " did not match!")
					B.E(field[i]).focus()
					return
				}
				
			}else if(valid[i] == "blanknotmatch") {
				//alert(B.E(field[i]+"1").value)
				
				if(B.E(field[i]).value == "") {
					alert("Please don't leave the "+val[i]+" blank")
					B.E(field[i]).focus()
					return 
				}else if(B.E(field[i]+"1").value == "") {
					alert("Please retype "+val[i])
					B.E(field[i]+"1").focus()
					return 
				}else if(B.E(field[i]).value == B.E(field[i]+"1").value) {
					alert("Please select "+ val[i] + " with different value!")
					B.E(field[i]).focus()
					return
				}
				
			}else if(valid[i] == "number") {
				if(isNaN(B.E(field[i]).value) == true) {
					alert("The data must be numeric or number")
					B.E(field[i]).focus();
					return	
				}	
			}else if(valid[i] == "string") {
				var newValue = B.E(field[i]).value
				var newLength = newValue.length;
				var extraChars=". -,";
				var search;
				   for(var i = 0; i != newLength; i++) {
					  aChar = newValue.substring(i,i+1);
					  aChar = aChar.toUpperCase();
					  search = extraChars.indexOf(aChar);
					  if(search == -1 && (aChar < "A" || aChar > "Z") ) {
						 alert("The data must not have wild characters!")
							B.E(field[i]).focus();
							return	
					  }
				   }					
			}// end if
			newstring.push((field[i]))			
		
		}// end for
		// return an array
		//alert(newstring)
		
		return 	newstring
		
		
	}
	
};




//-------------------------------------------------------------------------------//

// a = targer file
// b = get value parameters
// c = target html object reference by id, this is where the ajax loads
// d = clear the div
function $X(a, b, c, d) { 
var X
X=GetXmlHttpObject()

	if (X==null){
 		alert("Browser does not support HTTP Request")
 	return
 	}
var url=a

var newb = message.validate(b)
if(newb == null) {
	return
}
//alert(newb)
b = newb.toString()
b = b.replace(/,/g,"::")

// lets clear other div if exist
if(d.length != 0) {
d = (d).replace(/^\s*|\s*$/g,''); // remove the white spaces
tempdiv = d.split("::")	

	for(j=0; j<tempdiv.length; j++) {
		document.getElementById(tempdiv[j]).innerHTML="";
	}

}

b = (b).replace(/^\s*|\s*$/g,''); // remove the white spaces
if(b.length == 0) {
	url=url // if the get value parameters is empty 
}else {
	if(b.indexOf('==') == -1) { 
		alert("Error get parameters");
		return 
	}else {
	tempval = b.split("::")	
		for(i=0; i<tempval.length; i++) {
			chk = tempval[i].split("==")
			if(chk[0].length == 0) {
				alert("The value! [ " + chk[1] + " ] has no name")	
				return false
			}else if(chk[1].length == 0) {
				alert("The name [ " + chk[0] + " ] has no value")	
				return 
			}
			
		}
	
	temp = b.replace(/::/g,"&"); // replace all the delimeter
	urlb = temp.replace(/==/g, "="); // replace all the delimeter	
	
	url=url+"?"+urlb	
	}
}

X.onreadystatechange=state


function state() { // call back function 

	if (X.readyState==4 || X.readyState=="complete") { 
 		document.getElementById(c).innerHTML=X.responseText	
		
 	} else if (X.readyState==1 || X.readyState== 2) { 
 		document.getElementById(c).innerHTML=loaderko	
 	} 
}

X.open("GET",url,true)
X.send(null)

}

var $X1 = {}; $X1.get = $X;
var $X2 = {}; $X2.get = $X;
var $X3 = {}; $X3.get = $X;
var $X4 = {}; $X4.get = $X;
var $X5 = {}; $X5.get = $X;
var $X6 = {}; $X6.get = $X;
var $X7 = {}; $X7.get = $X;
var $X8 = {}; $X8.get = $X;
var $X9 = {}; $X9.get = $X;

function $XX(a, b, c, d) { 
var X
X=GetXmlHttpObject()
	if (X==null){
 		alert("Browser does not support HTTP Request")
 	return
 	}
var url=a;
$X(a,b,'DisplayC','')
// lets clear other div if exist
if(d.length != 0) {
d = (d).replace(/^\s*|\s*$/g,''); // remove the white spaces
tempdiv = d.split("::")	

	for(j=0; j<tempdiv.length; j++) {
		document.getElementById(tempdiv[j]).innerHTML="";
	}

}

b = (b).replace(/^\s*|\s*$/g,''); // remove the white spaces
if(b.length == 0) {
	url=url // if the get value parameters is empty 
}else {
	if(b.indexOf('==') == -1) { 
		alert("Error get parameters");
		return 
	}else {
	tempval = b.split("::")	
		for(i=0; i<tempval.length; i++) {
			chk = tempval[i].split("==")
			if(chk[0].length == 0) {
				alert("The value! [ " + chk[1] + " ] has no name")	
				return 
			}else if(chk[1].length == 0) {
				alert("The name [ " + chk[0] + " ] has no value")	
				return 
			}
			
		}
	
	temp = b.replace(/::/g,"&"); // replace all the delimeter
	urlb = temp.replace(/==/g, "="); // replace all the delimeter	
	
	url=url+"?"+urlb	
	}
}

X.onreadystatechange=state


function state() { // call back function 

	if (X.readyState==4 || X.readyState=="complete") { 
 		document.getElementById(c).innerHTML=X.responseText	
		
 	} else if (X.readyState==1 || X.readyState== 2) { 
 		document.getElementById(c).innerHTML=loaderko	
 	} 


}

X.open("GET",url,true)
X.send(null)

}
// -------------------------------------------------------------

// a = targer file
// b = post value parameters( name of the object only)
// c = target html object reference by id, this is where the ajax loads
// d = clear the div

function $Y(a, b, c, d) { 
var Y
Y=GetXmlHttpObject()
	if (Y==null){
 		alert("Browser does not support HTTP Request")
 	return
 	}
var url=a
newb = message.validate(b)
b = newb.toString()
b = b.replace(/,/g,"::")


// lets clear other div if exist
if(d.length != 0) {
d = (d).replace(/^\s*|\s*$/g,''); // remove the white spaces
tempdiv = d.split("::")	

	for(j=0; j<tempdiv.length; j++) {
		document.getElementById(tempdiv[j]).innerHTML="";
	}

}

b = (b).replace(/^\s*|\s*$/g,''); // remove the white spaces
tempval = b.split("::")
		ttemp = ""; 
		// set some error trapment when the html objects will not exist
		for(i=0; i<tempval.length; i++) { // if the post object do not exist the post will be canve		
			ttemp += tempval[i] +'='+ encodeURI(document.getElementById(tempval[i]).value)+"&"
		}

var postme = ttemp
Y.onreadystatechange=state
function state() { // call back function 

	if (Y.readyState==4 || Y.readyState=="complete") { 
		document.getElementById(c).innerHTML=Y.responseText	;		
	
	} else if (Y.readyState==1 || Y.readyState== 2) { 
		document.getElementById(c).innerHTML=loaderko	
	} 
}

Y.open('POST', url, true);
Y.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
Y.setRequestHeader("Content-length", postme.length);
Y.setRequestHeader("Connection", "close");
Y.send(postme);

}

var $Y1 = {}; $Y1.post = $Y;
var $Y2 = {}; $Y2.post = $Y;
var $Y3 = {}; $Y3.post = $Y;
var $Y4 = {}; $Y4.post = $Y;
var $Y5 = {}; $Y5.post = $Y;
var $Y6 = {}; $Y6.post = $Y;
var $Y7 = {}; $Y7.post = $Y;
var $Y8 = {}; $Y8.post = $Y;
var $Y9 = {}; $Y9.post = $Y;
//  0000000000000000000000000000000000000000000000000000000000000000 //


// a = targer file
// b = post value parameters( name of the object only)
// c = target html object reference by id, this is where the ajax loads
// d = redirect url
// e = get value of redirect url
function $XY(a, b, c, d, e) { 
var XY
XY=GetXmlHttpObject()
	if (XY==null){
 		alert("Browser does not support HTTP Request")
 	return
 	}
var url=a
b = (b).replace(/^\s*|\s*$/g,''); // remove the white spaces
tempval = b.split("::")	
		ttemp = ""; 
		// set some error trapment when the html objects will not exist
		for(i=0; i<tempval.length; i++) { // if the post object do not exist the post will be canve		
			ttemp += tempval[i] +'='+ encodeURI(document.getElementById(tempval[i]).value)+"&"
		}

var postme = ttemp
XY.onreadystatechange=state
function state() { // call back function 

	if (XY.readyState==4 || XY.readyState=="complete") { 
		document.getElementById(c).innerHTML=XY.responseText;		
		$X(d,e,c)// get the value after loading 
	} else if (XY.readyState==1 || XY.readyState== 2) { 
		document.getElementById(c).innerHTML=loaderko	
	} 
}

XY.open('POST', url, true);
XY.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
XY.setRequestHeader("Content-length", postme.length);
XY.setRequestHeader("Connection", "close");
XY.send(postme);

}

//  0000000000000000000000000000000000000000000000000000000000000000 //

function GetXmlHttpObject() {
var xmlHttp=null;
	try { // Firefox, Opera 8.0+, Safari
 		xmlHttp=new XMLHttpRequest();
 	}
	catch (e) { //Internet Explorer
 		try{
  			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  		}
 		catch (e){
  			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  		}
 	}
	return xmlHttp;
}
//  0000000000000000000000000000000000000000000000000000000000000000 //

//-----------------------------------------------------------
//-----------------------------------------------------------
//-----------------------------------------------------------
//divPop.timeout();
//-----------------------------------------------------------
//-----------------------------------------------------------
//-----------------------------------------------------------
