var test = "/^([a-zA-Z0-9 _ ])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-]+)+/";

var e = new RegExp('[-+\\.0-9=a-z_]+@([-0-9a-z]+\\.)+([0-9a-z]){2,4}','i');

var ret = true;


function dog(id)
{
        return document.getElementById(id);
}

function validatorOnSubmit(frm , callback)
{
		var l = frm.elements.length;
        var ret = true;
        var i;
        var keys = new Array();
        var vals = new Array();
        var types = new Array();
		var query = "";
        for (i=0;i<l;i++)
        {
                types[i] = frm.elements[i].type;
                keys[i] = frm.elements[i].name;
                vals[i] = frm.elements[i].value;
                if (dog(keys[i] + "Error"))
                       dog(keys[i] + "Error").style.display = "none";
                if (dog(keys[i] + "OK"))
                       dog(keys[i] + "OK").style.display = "none";
        }
        for (i=l-1;i>=0;i--)
        {
            if (types[i] == "text" || types[i] == "password" || types[i] == "textarea" || types[i] == "file")
            { 
				if (dog(keys[i] + "Error"))
                {
					if(vals[i] == "")
					{
                    	dog(keys[i] + "Error").style.display = "block";
                    	frm.elements[i].focus();
                    	ret = false;
					}
					if (dog(keys[i] + "Match"))
					{
						if(!mailCheck(keys[i],vals[i]))
						{
							ret = false;
						}
					}
				}

				if (dog(keys[i] + "InvalidPic"))
				{
					if (!checkImageType(keys[i]))
					{
						dog(keys[i] + "InvalidPic").style.display = "block";
						ret = false;
					}
				}
			}
			
			else if (types[i] == "select-one")
			{
				if (frm.elements[i].options['selectedIndex'] == 0 && dog(keys[i] + "Error"))
                {
                    dog(keys[i] + "Error").style.display = "block";
                    frm.elements[i].focus();
                    ret = false;
                }
			}
			if (typeof(frm.elements[i].validType) != "undefined")
			{
				if (frm.elements[i].validType == "img" && !checkImageType(keys[i]))
				{
					dog(keys[i] + "Error").style.display = "block";
					ret = false;
				}
			}
        }

		if (!ret)
			return false;
		if (!(keys[0] == "ajx" && vals[0] == 1))
		{
        	return ret;
		}

        for (i=0;i<l;i++)
        {
			if (types[i] == "submit" || types[i] == "reset" || types[i] == "button")
				continue;
			if (types[i] != "radio")
				query += keys[i] + "=" + vals[i] + "&";
			else if(frm.elements[i].checked)
				query += keys[i] + "=" + vals[i] + "&";
		}
		query = encodeURI(query);
	  	dog("loading").style.display = "block";
        getData(frm.action , query , frm.method , callback);
		frm.reset();
        return false;
}



function resetform(frm)
{
	 frm = document.getElementById(frm);
	 var l = frm.length;
	 for (i=0;i<l;i++)
	 {
		 if (dog(frm.elements[i].name + "Error"))
			 dog(frm.elements[i].name + "Error").style.display = "none";
		 if (dog(frm.elements[i].name + "OK"))
			 dog(frm.elements[i].name + "OK").style.display = "none";
	 }
}


function checkImageType(id)
{
	var img = dog(id).value;
	var ps = img.toLowerCase();
	var ex = 0;
	if (img == "") return true;
	ex += (1+ps.indexOf('.jpg'))
	ex += (1+ps.indexOf('.jpeg'))
	ex += (1+ps.indexOf('.gif'))
	ex += (1+ps.indexOf('.bmp'))
	ex += (1+ps.indexOf('.png'))
	
	if (ex == 0) {
//		alert('Accepted file types: (.jpg, ,.jpeg ,.bmp, .gif ,.png)');
		return false;
	}
	return true;
}

function mailCheck(field,val)
{
	var ret;
	ret = (val.match(e)) ? true : false;
	if (!ret)
	{
		dog(field + "Error").style.display = "block";
	}
	return ret;
}

function checkLink(id)
{
	Link = dog(id).value;
	if (Link == "http://")
	{
		dog(id+"Error").style.display = "block";
		return false;
	}
	return true;
}

function openBox(url , query , event)
{
	var rand = Math.round(Math.random()*1000);
	dog("hiddenDiv").style.display = "block";
	dog("dataTd").style.top = event.clientY + document.body.scrollTop;
	dog("dataTd").style.left = event.clientX + document.body.scrollLeft - 200;
	dog("dataTd").style.display = "block";
//	document.location.replace(url + "?" + query);
	dog("dataTd").innerHTML = "لطفا چند لحظه صبر کنید ...";
	getData(url , query , "GET" , onLoadData);
}

function getData(url , query , method , callback)
{
//		alert(url + ' , ' + query + ' , ' + method + ' , ' + callback)
        var XMLHttpRequestObject = false;
        if(window.XMLHttpRequest)
            XMLHttpRequestObject = new XMLHttpRequest();
        else
            XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
        if(!XMLHttpRequestObject)
        {
            alert("no XMLHttpRequest");
             return false;
         }
		 if (method == "get" || method == "GET")

		 	url = url + "?" + query;

		XMLHttpRequestObject.open(method,url,true);

		XMLHttpRequestObject.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		XMLHttpRequestObject.onreadystatechange = function()
		{
			if(   XMLHttpRequestObject.readyState == 4) 
				if (XMLHttpRequestObject.status == 200)
				{
					if (callback != noAction)
						callback(XMLHttpRequestObject.responseText);
				}
				else
				{
					alert("Server Connection Error (Error No:" + XMLHttpRequestObject.status + ")");
					return false;
				}
		}
		
		XMLHttpRequestObject.send(query);

}



function Login()
{
	var ret = true;
	var user = dog("txtUsername").value;
	var pass = dog("txtPassword").value;
	dog("txtUsernameError").style.display = "none";
	dog("txtPasswordError").style.display = "none";	
	if (user == "")
	{
		dog("txtUsernameError").style.display = "block";
		ret = false;
	}
	if (pass == "")
	{
		dog("txtPasswordError").style.display = "block";
		ret = false;
	}	
	if (!ret)
		return false;
	dog("userStatus").style.color = "#000000";
	dog("userStatus").innerHTML = "لطفا چند لحظه صبر کنید ...";
	getData("index.php" , "action=userlogin&txtUsername=" + user + "&txtPassword=" + pass , "POST" , onLogin);
	return false;
}

function onLogin(txt)
{
	txt = txt.split("||");
	if (txt[0] == "ok" && txt[1] == "user")
		document.location = "Desktop";
	else if(txt[0] == "ok" && txt[1] == "admin")
		document.location = "admin";
	else
	{
		dog("userStatus").style.color = "#FF0000";
		dog("userStatus").innerHTML = "نام کاربری یا کلمه عبور اشتباه است.";
		dog("txtUsername").value = "";
		dog("txtPassword").value = "";
	}
}

function onLoadData(txt)
{
	//dog("loading").style.display = "none";
	dog("dataTd").innerHTML = txt;
	return false;
}

function LoadPartN(page , table)
{
	url = "";
	query = "action=loadAllRows&page=" + page;
	if (typeof(table) != 'undefiend')
		query = query + "&table=" + table;
//	document.location.href(url + "?" + query);
	dog("dataTd").innerHTML = "لطفا چند لحظه صبر کنید ...";
	getData(url , query , "GET" , onLoadData);
}

function titleClicked(id)
{
	window.scrollTo(0,0);
	var str = "updateCount.php?id=" + id;
	dog("dataTd").innerHTML = "";
  	dog("loading").style.display = "block";
	getData(str , noAction);
	getData("fulltxt.php?id=" + id,onLoadData);
}

function onLogout(txt)
{
	if(txt == "ok")
		window.location = "../";
	else 
		alert(txt);
}

function onSendData(txt)
{
	if (txt == 'OK')
		dog('loading').innerHTML = 'پیام شما با موفقیت ارسال شد';
	else
		dog('loading').innerHTML = 'بروز خطا در ارسال پیام ، لطفا بعدا اقدام نمایید.';
}

function noAction(txt)
{
}
