// JavaScript Document
//funciton for draging the elemtn
 function Browser() {

  var ua, s, i;

  this.isIE    = false;
  this.isNS    = false;
  this.version = null;

  ua = navigator.userAgent;

  s = "MSIE";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isIE = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }

  s = "Netscape6/";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }

  // Treat any other "Gecko" browser as NS 6.1.

  s = "Gecko";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = 6.1;
    return;
  }
}


browser = new Browser();

// Global object to hold drag information.

dragObj = new Object();
//dragObj.zIndex = 0;

function dragStart(event,id) {
	
  
   	

  var el;
  var x, y;


 
  // If an element id was given, find it. Otherwise use the element being
  // clicked on.
  
  if (id)
    dragObj.elNode = document.getElementById(id);
  else {
    if (browser.isIE)
      dragObj.elNode = window.event.srcElement;
    if (browser.isNS)
      dragObj.elNode = event.target;

   dragObj.elNode.style.position="absolute";

    // If this is a text node, use its parent element.

    if (dragObj.elNode.nodeType == 3)
      dragObj.elNode = dragObj.elNode.parentNode;
  }

  // Get cursor position with respect to the page.

  if (browser.isIE) {
    x = window.event.clientX + document.documentElement.scrollLeft
      + document.body.scrollLeft;
    y = window.event.clientY + document.documentElement.scrollTop
      + document.body.scrollTop;
  }
  if (browser.isNS) {
    x = event.clientX + window.scrollX;
    y = event.clientY + window.scrollY;
  }

  // Save starting positions of cursor and element.

  dragObj.cursorStartX = x;
  dragObj.cursorStartY = y;
  dragObj.elStartLeft  = parseInt(dragObj.elNode.style.left, 10);
  dragObj.elStartTop   = parseInt(dragObj.elNode.style.top,  10);

  if (isNaN(dragObj.elStartLeft)) dragObj.elStartLeft = 0;
  if (isNaN(dragObj.elStartTop))  dragObj.elStartTop  = 0;

  // Update element's z-index.

 // dragObj.elNode.style.zIndex = ++dragObj.zIndex;

  // Capture mousemove and mouseup events on the page.

  if (browser.isIE) {
    document.attachEvent("onmousemove", dragGo);
    document.attachEvent("onmouseup",   dragStop);
    window.event.cancelBubble = true;
    window.event.returnValue = false;
  }
  if (browser.isNS) {
    document.addEventListener("mousemove", dragGo,   true);
    document.addEventListener("mouseup",   dragStop, true);
    event.preventDefault();
  }
}

function dragGo(event) {
   var x,y;
  // Get cursor position with respect to the page.
 
  if (browser.isIE) {
    x = window.event.clientX + document.documentElement.scrollLeft
      + document.body.scrollLeft;
    y = window.event.clientY + document.documentElement.scrollTop
      + document.body.scrollTop;
  }
  if (browser.isNS) {
    x = event.clientX + window.scrollX;
    y = event.clientY + window.scrollY;
  }

 
    moveX=(dragObj.elStartLeft + x - dragObj.cursorStartX);
	moveY=(dragObj.elStartTop  + y - dragObj.cursorStartY);
	
  dragObj.elNode.style.left = moveX+ "px";
  dragObj.elNode.style.top  =moveY+ "px";

  if (browser.isIE) {
    window.event.cancelBubble = true;
    window.event.returnValue = false;
  }
  if (browser.isNS)
    event.preventDefault();
}

function dragStop(event) {

  // Stop capturing mousemove and mouseup events.

  if (browser.isIE) {
    document.detachEvent("onmousemove", dragGo);
    document.detachEvent("onmouseup",   dragStop);
  }
  if (browser.isNS) {
    document.removeEventListener("mousemove", dragGo,   true);
    document.removeEventListener("mouseup",   dragStop, true);
  }
}
  







function initLoginValidation(form_name)

        {

           

			var objForm = document.forms[eval("'"+form_name+"'")];

			objForm.username.required = 1;

			objForm.userpass.required =1;

			

					            			

        }

		function initLoginValidation1(form_name)

        {

           

			var objForm = document.forms[eval("'"+form_name+"'")];

			objForm.username.required = 1;

			objForm.useroldpass.required = 1;

			objForm.userpass.required =1;

			

					            			

        }

		

	

function initmenuValidation(form_name)

	{

	   

		var objForm = document.forms[eval("'"+form_name+"'")];

		objForm.menu_name.required =1;
		objForm.parent.required = -1;
        objForm.parent.exclude = '-1';	
		
		if(document.getElementById('link_id').style.display!='none')
		{
		 objForm.menu_link.required =1;
		 objForm.menu_link.regexp = /(http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/; 
		// objForm.menu_content.required =0;
		}
		else
		{
		 objForm.menu_link.required =0;
		objForm.menu_link.regexp='';
		}
		
	}
	
	function initMemberLinkValidation(form_name)

	{

	   

		var objForm = document.forms[eval("'"+form_name+"'")];

		objForm.link_name.required =1;
		//objForm.parent.required = -1;
        //objForm.parent.exclude = '-1';	
		
		if(document.getElementById('link_id').style.display!='none')
		{
		 objForm.member_link.required =1;
		 objForm.member_link.regexp = /(http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/; 
		// objForm.menu_content.required =0;
		}
		else
		{
			objForm.member_link.regexp='';
		 objForm.member_link.required=0;
		 
		// objForm.menu_content.required =1;
		}
		
	}


function initUserAdmValidation(form_name)
{
        var objForm = document.forms[eval("'"+form_name+"'")];
		//objForm.breed.required =1;
		//objForm.age.required =1;
		//objForm.description.required =1;
		objForm.user_name.required =1;
		
		var passed = validatePassword(objForm.user_password.value, {
			length:   [6, Infinity],
			lower:    0,
			upper:    0,
			numeric:  1,
			special:  0
		});

		
		if(passed==true)
		{
			
		objForm.user_password.required =0;
		objForm.user_password.regexp ='';
		}
		else
		{
		 objForm.user_password.required =1;
		 objForm.user_password.regexp=/^(?=.*\d)\w{6,}$/;
		}
		objForm.city_town.required =1;
		objForm.province_id.required = -1;
        objForm.province_id.exclude = '-1';	
		//objForm.pet_type_id.required = -1;
      //  objForm.pet_type_id.exclude = '-1';	
		objForm.email.required=1;
		objForm.email.regexp = "JSVAL_RX_EMAIL";
		
		objForm.area_code.required = 1;
			objForm.area_code.minlength = 3;
			
			objForm.city_code.required = 1;
			objForm.city_code.minlength = 3;
			if(objForm.city_code.value!='' && objForm.city_code.value.length==3){
			  objForm.phone_num.required = 1;
			  objForm.phone_num.minlength = 4;
			  }
			else
			
			   objForm.phone_num.required = 0; 
}


function initProvinceValidation(form_name)
	{

	   

		var objForm = document.forms[eval("'"+form_name+"'")];

		objForm.province_name.required =1;
		
	}
	
	
	function initUserLoginValidation(form_name)

        {

			var objForm = document.forms[eval("'"+form_name+"'")];
           
			objForm.user_name.required = 1;

			objForm.user_password.required = 1;
        }
		
		function initForgotValidation(form_name)

        {

			var objForm = document.forms[eval("'"+form_name+"'")];

			objForm.user_name.required = 1;

			objForm.email.required=1;
		    objForm.email.regexp = "JSVAL_RX_EMAIL";
        }
		
		function initEmailValidation(form_name)

        {

			var objForm = document.forms[eval("'"+form_name+"'")];

			

			objForm.email.required=1;
		objForm.email.regexp = "JSVAL_RX_EMAIL";
        }



	
function initRegValidation(form_name)
{
        var objForm = document.forms[eval("'"+form_name+"'")];
		//objForm.breed.required =1;
		//objForm.age.required =1;
		//objForm.description.required =1;
		objForm.user_name.required =1;
		
		var passed = validatePassword(objForm.user_password.value, {
			length:   [6, Infinity],
			lower:    0,
			upper:    0,
			numeric:  1,
			special:  0
		});

		
		if(passed==true)
		{
			
		objForm.user_password.required =0;
		objForm.user_password.regexp ='';
		}
		else
		{
		 objForm.user_password.required =1;
		 objForm.user_password.regexp=/^(?=.*\d)\w{6,}$/;
		}
		objForm.comfirm_password.required =1;
		objForm.city_town.required =1;
		objForm.province_id.required = -1;
        objForm.province_id.exclude = '-1';	
		//objForm.pet_type_id.required = -1;
      //  objForm.pet_type_id.exclude = '-1';	
	  
	       objForm.area_code.required = 1;
			objForm.area_code.minlength = 3;
			
			objForm.city_code.required = 1;
			objForm.city_code.minlength = 3;
			if(objForm.city_code.value!='' && objForm.city_code.value.length==3){
			  objForm.phone_num.required = 1;
			  objForm.phone_num.minlength = 4;
			  }
			else
			
			   objForm.phone_num.required = 0; 
	  
		objForm.email.required=1;
		objForm.email.regexp = "JSVAL_RX_EMAIL";
}


  function popUp(URL,w,h,scroll1) {

	  //h=120;

	  //w=350;

	  //scroll1=0;

	  var left_v = (screen.width-w)/2;

      var top_v = (screen.height-h)/2;

	  settings1 ='height='+h+',';

      settings1 +='width='+w+',';

      settings1 +='top='+top_v+',';

      settings1 +='left='+left_v+',';

      settings1 +='scrollbars='+scroll1+',';

      settings1 +='resizable=no';

day = new Date();

id = day.getTime();

eval("page" + id + " = window.open(URL, '" + id + "', '" + settings1 + "')");

}


function CheckAll1()

   {
		for (var i=0;i<document.moveform1.elements.length;i++)

      {

         var e = document.moveform1.elements[i];

         if (e.name != "allbox")

            e.checked = document.moveform1.allbox.checked;

      }

   }  
   
function CheckAll11()



   {
	   
	      objs=document.getElementsByName("cat_id[]");
		

		for (var i=0;i<objs.length;i++)



      {



         var e = objs[i];



         if (e.name != "cat_all")



            e.checked = document.form1.cat_all.checked;



      }



   }  

   
   function CheckAll12()



   {
	     objs=document.getElementsByName("province_id[]");

		for (var i=0;i<objs.length;i++)



      {



         var e = objs[i];



         if (e.name != "province_all")



            e.checked = document.form1.province_all.checked;



      }



   }
   

   function confirmAlert()

    {

	  

	  if(window.confirm("Are you sure to execute the command?")){

			         return true;

	    }else{

			  return false;	 

	   }	

   }

   

   function deleteConfirm()

    {

	  if(window.confirm("Are You Sure to delete seleted row(s).")){

			         return true;

	    }else{

			  return false;	 

	   }	

    }

function staConfirm()

    {

	  if(window.confirm("Are you sure to change the status?")){

			         return true;

	    }else{

			  return false;	 

	   }	

   }

   

   
   

 

  
	  
	  
	  //this function is used for changing opacity of div
  function opacity(id, opacStart, opacEnd, millisec) {
    //speed for each frame
    var speed = Math.round(millisec / 100);
    var timer = 0;

    //determine the direction for the blending, if start and end are the same nothing happens
    if(opacStart > opacEnd) {
        for(i = opacStart; i >= opacEnd; i--) {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    } else if(opacStart < opacEnd) {
        for(i = opacStart; i <= opacEnd; i++)
            {
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    }
} 

function changeOpac(opacity, id) {
    var object = document.getElementById(id).style;
    object.opacity = (opacity / 100);
    object.MozOpacity = (opacity / 100);
    object.KhtmlOpacity = (opacity / 100);
    object.filter = "alpha(opacity=" + opacity + ")";
}

//fuction for showing loading, args: parent_div==div id where loading will be displayed
function showLoading(parent_div){
	changeOpac(50,parent_div);
	var startPos = GetElementPosition(document.getElementById(parent_div));
	var initSize = GetObjectSize(document.getElementById(parent_div));

	var parent_obj = document.getElementById(parent_div);
	var divLoading = document.createElement("div");
	divLoading.id = "loadingDiv";
	divLoading.style.width =initSize.w+"px";
	divLoading.style.height =initSize.h+"px";
	divLoading.style.position = "absolute";
	divLoading.style.left = startPos.x + "px";
	divLoading.style.backgroundColor = "Transparent";
	divLoading.style.top = startPos.y + "px";
	imgLoading=document.createElement("IMG");
	imgLoading.setAttribute('src', 'images/ajax-loading.gif');	
	imgLoading.style.position = "absolute";
	imgLoading.style.left = parseInt((initSize.w/2)) + "px";
	imgLoading.style.top = parseInt((initSize.h/2)-8) + "px";
    divLoading.appendChild(imgLoading);
	parent_obj.appendChild(divLoading);

}	
function removeLoading(parent_div){
 var loading_div = document.getElementById('loadingDiv');
 var parent_obj = document.getElementById(parent_div);
 changeOpac(100, parent_div);
 parent_obj.removeChild(loading_div);
 
}



function highlight(obj,type)
{
  if(type==1)
  {
	obj.style.borderColor="#CC0000";  
  }
  else
  {
	 obj.style.borderColor="";   
  }
}





function textCounter(field,cntfield,maxlimit) {

	if (field.value.length > maxlimit) 

	{

	alert("You are not allowed to type more than 250 characters.");

	field.value = field.value.substring(0, maxlimit);

	}

	else

	cntfield.value = maxlimit - field.value.length;

  }
  
  function initUserACValidation(form_name)

	{

	   

		var objForm = document.forms[eval("'"+form_name+"'")];

		objForm.city_town.required =1;
		//objForm.phone.required =1;
		objForm.email.required =1;
		objForm.email.regexp = "JSVAL_RX_EMAIL";	
		objForm.province_id.required = -1;
		objForm.province_id.exclude = '-1';	
		
	}
	
	function initUserPassValidation(form_name)

	{

	   

		var objForm = document.forms[eval("'"+form_name+"'")];

		objForm.old_pass.required =1;
		var passed = validatePassword(objForm.user_password.value, {
			length:   [6, Infinity],
			lower:    0,
			upper:    0,
			numeric:  1,
			special:  0
		});
		if(passed==true)
		{
			
		objForm.user_password.required =0;
		objForm.user_password.regexp ='';
		}
		else
		{
		 objForm.user_password.required =1;
		 objForm.user_password.regexp=/^(?=.*\d)\w{6,}$/;
		}
		objForm.re_pass.required =1;
		
		
	}
	
	function checkEmail()
	{
	  if(document.getElementById('email_id').value=='')
	  {
		  alert("Please enter an email");
		  return false;  
	  }
	  else
	   return true;
	}
	
	
function validatePassword (pw, options) {
	// default options (allows any password)
	var o = {
		lower:    0,
		upper:    0,
		alpha:    0, /* lower + upper */
		numeric:  0,
		special:  0,
		length:   [0, Infinity],
		custom:   [ /* regexes and/or functions */ ],
		badWords: [],
		badSequenceLength: 0,
		noQwertySequences: false,
		noSequential:      false
	};

	for (var property in options)
		o[property] = options[property];

	var	re = {
			lower:   /[a-z]/g,
			upper:   /[A-Z]/g,
			alpha:   /[A-Z]/gi,
			numeric: /[0-9]/g,
			special: /[\W_]/g
		},
		rule, i;

	// enforce min/max length
	if (pw.length < o.length[0] || pw.length > o.length[1])
		return false;

	// enforce lower/upper/alpha/numeric/special rules
	for (rule in re) {
		if ((pw.match(re[rule]) || []).length < o[rule])
			return false;
	}

	// enforce word ban (case insensitive)
	for (i = 0; i < o.badWords.length; i++) {
		if (pw.toLowerCase().indexOf(o.badWords[i].toLowerCase()) > -1)
			return false;
	}

	// enforce the no sequential, identical characters rule
	if (o.noSequential && /([\S\s])\1/.test(pw))
		return false;

	// enforce alphanumeric/qwerty sequence ban rules
	if (o.badSequenceLength) {
		var	lower   = "abcdefghijklmnopqrstuvwxyz",
			upper   = lower.toUpperCase(),
			numbers = "0123456789",
			qwerty  = "qwertyuiopasdfghjklzxcvbnm",
			start   = o.badSequenceLength - 1,
			seq     = "_" + pw.slice(0, start);
		for (i = start; i < pw.length; i++) {
			seq = seq.slice(1) + pw.charAt(i);
			if (
				lower.indexOf(seq)   > -1 ||
				upper.indexOf(seq)   > -1 ||
				numbers.indexOf(seq) > -1 ||
				(o.noQwertySequences && qwerty.indexOf(seq) > -1)
			) {
				return false;
			}
		}
	}

	// enforce custom regex/function rules
	for (i = 0; i < o.custom.length; i++) {
		rule = o.custom[i];
		if (rule instanceof RegExp) {
			if (!rule.test(pw))
				return false;
		} else if (rule instanceof Function) {
			if (!rule(pw))
				return false;
		}
	}

	// great success!
	return true;
}

//navigation menu
function mainmenu(){
$(" #nav ul ").css({display: "none"}); // Opera Fix
$(" #nav li").hover(function(){
		$(this).find('ul:first').css({visibility: "visible",display: "none"}).show(400);
		},function(){
		$(this).find('ul:first').css({visibility: "hidden"});
		});
}


function showExpand(menu_id)
{
  menus=getElementsByClassName(menu_id);
  
  if(document.getElementById('pic'+menu_id).src=='http://pihg.net/admin/images/expand.gif')
  {
	 document.getElementById('pic'+menu_id).src='http://pihg.net/admin/images/contract.gif';  
  }
  else
  {
	 document.getElementById('pic'+menu_id).src='http://pihg.net/admin/images/expand.gif';  
  }
  
  
  
  for(i=0;i<menus.length;i++)
  {
	 row=menus[i]; 
	 
	 if(row.style.display!='none')
	 row.style.display='none';
	 else
	 row.style.display='';	 
  }
  
  
}


function getElementsByClassName(v)
{
    var e=document.getElementsByTagName("*"),f=[];
    for(var i in e){
        if(new RegExp("\\b"+v+"\\b").test(e[i].className)){
            f.push(e[i]);
        }
    }
    return f;
}

function showContentBox(type)
{
  if(type==1)
  {
	   document.getElementById('link_id').style.display='';
	  
	   
	   document.getElementById('content_id').style.display='none';
  }
  if(type==2)
  {
	   document.getElementById('content_id').style.display='';
	   document.getElementById('link_id').style.display='none';
  }
}

