
// go to another page
function MM_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}

function popWindow(url,winType) {
	switch (winType)
	{
		case 1:
				win_name = "kye_1";
				win_size = "menubar=no,toolbar=no,resizable,scrollbars,status,top=40,left=40,width=700,height=500";
				break;
		case 2:
				win_name = "kye_2";
				win_size = "menubar=no,toolbar=no,resizable,scrollbars,status,top=40,left=40,width=500,height=550";
				break;
		case 3:
				win_name = "kye_3";
				win_size = "menubar=no,toolbar=no,resizable,scrollbars,status,top=40,left=40,width=600,height=600";
				break;
		case 4:
				win_name = "kye_2";
				win_size = "menubar=no,toolbar=no,resizable,scrollbars,status,top=40,left=40,width=500,height=300";
				break;
		default:
				win_name = "kye_0";
				win_size = "resizable,scrollbars,status=0,width=500,height=400,top=40,left=40";
				break;

	}

	var objWin = window.open (url, win_name, win_size);
	objWin.focus();

}


// Trim a string
function Trim(myText){
	var tempText = myText

	// cut space in the beginning
	var firstChar = tempText.charAt(0);
	while (firstChar == " "){
		tempText = tempText.substr(1, tempText.length-1);
		firstChar = tempText.charAt(0);
	}

	// cut "\n" in the beginning
	var firstTwo = parseInt(tempText.charCodeAt(0));
	while (firstTwo == 13){
		tempText = tempText.substr(2, tempText.length-1);
		firstTwo = parseInt(tempText.charCodeAt(0, 2));
	}

	// cut space in the end
	var lastChar = tempText.charAt(tempText.length-1);
	while (lastChar == " "){
		tempText = tempText.substr(0, tempText.length-1);
		lastChar = tempText.charAt(tempText.length-1);
	}

	return tempText;
}


// form field validation
function CheckText(my_field, my_msg){

	if (Trim(my_field.value)=="")
	{
		alert(my_msg);
		my_field.value="";
		my_field.focus();
		return false;
	} else
	{
		return true;
	}
}

function countChecked(obj, element_name){
        len=obj.elements.length;
        var i=0;
        var j=0;
        for( i=0 ; i<len ; i++) {
                if (obj.elements[i].name==element_name && obj.elements[i].checked)
                j=j+1;
        }
        return j;
}

function checkNew(page){

   self.location.href=page;
}

function checkEdit(obj,element,page,my_msg){
        if(countChecked(obj,element)==1) {
                obj.action=page;
                obj.submit();
        } else {
                alert(my_msg);
        }
}


function checkRemove(obj,element,page,my_msg1,my_msg2){
        if(countChecked(obj,element)==0)
                alert(my_msg1);
        else{
                if(confirm(my_msg2)){
                obj.action=page;
                obj.method="POST";
                obj.submit();
                }
        }
}

function checkPick(obj,element,page,my_msg1,my_msg2){
        if(countChecked(obj,element)==0)
                alert(my_msg1);
        else{

              obj.action=page;
              obj.method="POST";
              obj.submit();
        }
}

function setChecked(val, obj, element_name){
        len=obj.elements.length;
        var i=0;
        for( i=0 ; i<len ; i++) {
                if (obj.elements[i].name==element_name)
                obj.elements[i].checked=val;
        }
}

function TriggerDisplay(tableID, myStyle){
	//block, none, inline
	var currentStyle = document.all[tableID].style.display;
	var newStyle = "none";
	if (typeof(myStyle)!="undefined")
	{
		newStyle = myStyle;
	} else
	{
		newStyle = (currentStyle=="none") ? "block" : "none";
	}

	document.all[tableID].style.display = newStyle;

	return;
}

function compareDate(s1,s2)
{
        y1 = parseInt(s1.substring(0,4),10);
        y2 = parseInt(s2.substring(0,4),10);
        m1 = parseInt(s1.substring(5,7),10);
        m2 = parseInt(s2.substring(5,7),10);
        d1 = parseInt(s1.substring(8,10),10);
        d2 = parseInt(s2.substring(8,10),10);

        if (y1 > y2)
        {
                return 1;
        }
        else if (y1 < y2)
        {
                return -1;
        }
        else if (m1 > m2)
        {
                return 1;
        }
        else if (m1 < m2)
        {
                return -1;
        }
        else if (d1 > d2)
        {
                return 1;
        }
        else if (d1 < d2)
        {
                return -1;
        }
        return 0;
}

function check_date(obj, msg){
        var err = 0;
        d_a = obj.value;
        if (d_a.length != 10) err = 1;
        d_b = parseInt(d_a.substring(0, 4),10)        // year
        d_c = d_a.substring(4, 5)                                // '-'
        d_d = parseInt(d_a.substring(5, 7),10)        // month
        d_e = d_a.substring(7, 8)                                // '-'
        d_f = parseInt(d_a.substring(8, 10),10)        // day
        // basic error checking
        if(d_b<0 || d_b>3000 || isNaN(d_b)) err = 1;
        if(d_c != '-') err = 1;
        if(d_d<1 || d_d>12 || isNaN(d_d)) err = 1;
        if(d_e != '-') err = 1;
        if(d_f<1 || d_f>31 || isNaN(d_f)) err = 1;
        // advanced error checking
        // months with 30 days
        if((d_d==4 || d_d==6 || d_d==9 || d_d==11) && (d_f==31)) err = 1;
        // february, leap year
        if(d_d==2){ // feb
                var d_g = parseInt(d_b/4)
                if(isNaN(d_g)) err = 1;
                if(d_f>29) err = 1;
                if(d_f==29 && ((d_b/4)!=parseInt(d_b/4))) err = 1;
        }
        if(err==1){
                alert(msg);
                obj.focus();
                return false;
        }else{
                return true;
        }
}

function check_date2(d_a, obj, msg){
				
				var err = 0;
				
        if (d_a.length != 10) err = 1;
        d_f = parseInt(d_a.substring(0, 2),10)        // day
        d_c = d_a.substring(2, 3)                                // '/'
        d_d = parseInt(d_a.substring(3, 5),10)        // month
        d_e = d_a.substring(5, 6)                                // '/'
        d_b = parseInt(d_a.substring(6, 10),10)       // year
				
				//alert(d_f);
				//alert(d_c);
				//alert(d_d);
				//alert(d_e);
				//alert(d_b);
				
		    // basic error checking
        if(d_b<0 || d_b>3000 || isNaN(d_b)) err = 1;
        if(d_c != '/') err = 1;
        if(d_d<1 || d_d>12 || isNaN(d_d)) err = 1;
        if(d_e != '/') err = 1;
        if(d_f<1 || d_f>31 || isNaN(d_f)) err = 1;

        // advanced error checking
        // months with 30 days
        if((d_d==4 || d_d==6 || d_d==9 || d_d==11) && (d_f==31)) err = 1;
        // february, leap year
        if(d_d==2){ // feb
                var d_g = parseInt(d_b/4)
                if(isNaN(d_g)) err = 1;
                if(d_f>29) err = 1;
                if(d_f==29 && ((d_b/4)!=parseInt(d_b/4))) err = 1;
        }
        if(err==1){
								alert(msg);
                obj.focus();
                return false;
        }else{
                return true;
        }
}

function GoToPage(obj,page_no){

	obj.page_number.value = page_no;
	obj.submit();
}

function sortPage(order,field,pageno,obj){

	obj.order.value=order;
    obj.field.value=field;
    obj.page_number.value=pageno;
	
	obj.submit();
}

function FindDuplicated(txt_arr){
	for (var i=0; i<txt_arr.length; i++)
	{
		for (var j=i+1; j<txt_arr.length; j++)
		{
			if (Trim(txt_arr[i])==Trim(txt_arr[j]) && Trim(txt_arr[j])!="")
			{
				return i;
			}
		}
	}
	
	return 0;
}

function validateEmail2(obj,msg){
        //var re = /^[\w_.-]+@[\w-]+(\.\w+)+$/;
        var re = /^.+@.+\..{2,3}$/;
        if (re.test(obj.value)) {
                return true;
        }else{
                alert(msg);
                obj.focus();
                return false;
        }
}

// a very simple email validation checking.
function ValidateEmail(email) {
	var splitted = email.match("^(.+)@(.+)$");
	if(splitted == null) return false;
	if(splitted[1] != null )
	{
		var regexp_user=/^\"?[\w-_\.]*\"?$/;
		if(splitted[1].match(regexp_user) == null) return false;
	}
	if(splitted[2] != null)
	{
		var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;
		if(splitted[2].match(regexp_domain) == null)
		{
			var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
			if(splitted[2].match(regexp_ip) == null) return false;
		}// if
		return true;
	}

	return false;
}

function displayTable(tableID, myStyle){
	//block, none, inline
	
	var jTargetObj = document.getElementById(tableID);
	if (typeof(jTargetObj)!="undefined")
	{
		var currentStyle = jTargetObj.style;
		var newStyle = "none";
		if (typeof(myStyle)!="undefined")
		{
			newStyle = myStyle;
		} else
		{
			newStyle = (currentStyle=="none") ? "block" : "none";
		}
		jTargetObj.style.display = newStyle;
	}

	return;
}
