// JavaScript Document
//check for empty strings or white spaces
function empty_string(str)
{
   
  if(str==null || str=='') return true;
  new_str=str.replace(/\s/g,"");
  if(new_str.length==0) return true;
  return false;
}
/*-------------------------------------------------------------------------------------------
  Parse AJAX response string and returns content of a specified tag
  
  EX:
  response_string="<tag_1>tag_1 content text</tag_1><tag_2>tag_2 content text</tag_2>";
  r=get_response_tag("tag_2",response_string);
  =>> r = "tag_2 content text"; 
  
-------------------------------------------------------------------------------------------*/
function get_response_tag(tag,response)
{
	start_tag = "<"+tag+">";
	end_tag   = "</"+tag+">";
	spos=response.indexOf(start_tag);
	epos=response.indexOf(end_tag);
	
	if(spos!=-1 && epos!=-1)
	{
		return response.substr(spos+start_tag.length,epos-spos-start_tag.length);
	}
	return "";
}

/*-------------------------------------------------------------------------------------------
  Find [left,top] position of an element on page
-------------------------------------------------------------------------------------------*/
function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}

var objDialog = null;
var objModal  = null;

function initDialog()
{
	if(!document.getElementById('empty_1')){
		var newdiv = document.createElement('div');
		newdiv.id = 'empty_1';
		document.body.appendChild(newdiv);
	}
	if(!document.getElementById('empty_2')){
		var newdiv = document.createElement('div');
		newdiv.id = 'empty_2';
		document.body.appendChild(newdiv);
	}
}

function showDialog()
{
	//document.body.style.overflow ='hidden';
	initDialog();
	objModal    = document.createElement("div");
	objDialog   = document.createElement("div");
	//var bHeight = document.body.scrollHeight;
	$('empty_1').appendChild(objModal);
	objModal.className      = 'modal';
	objModal.style.height   = document.body.scrollHeight+'px';
	objDialog.className     = 'dialog';
	if(arguments.length==2)
	{
		var w = parseInt(arguments[0]);
		var h = parseInt(arguments[1]);
		if(!isNaN(w) && !isNaN(h))
		{
			objDialog.style.width  = w + 'px';
			objDialog.style.height = h + 'px';
			
		}
	}
	$('empty_2').appendChild(objDialog);
	dialogW                 = objDialog.offsetWidth;
	dialogH                 = objDialog.offsetHeight;
	//objDialog.style.display = 'none';
	objDialog.style.visibility = 'hidden';
	objDialog.style.left    = (objModal.offsetWidth/2-dialogW/2) +'px';
	objDialog.style.top     = (document.body.clientHeight/2-dialogH/2)+document.body.scrollTop+'px';
	//objDialog.style.display = 'block';
	objDialog.style.visibility = 'visible';
	//return the reference to dialog div object
	addEvent( window, 'scroll',scrollDialog ) ;
	addEvent( window, 'resize',scrollDialog ) ;
	return [objModal,objDialog];	
}

function setDialogHTML(html_content)
{
	if(objDialog)
	{	
		objDialog.style.visibility = 'hidden';
		objDialog.innerHTML = '<div id="dlg_content">'+html_content+'</div>';
		var h = $('dlg_content').offsetHeight;
		var w = $('dlg_content').offsetWidth;
		objDialog.style.height = h+'px';
		objDialog.style.width  = w+'px';
		dialogH                 = objDialog.offsetHeight;
		dialogW                 = objDialog.offsetWidth;
		
		objDialog.style.left    = (objModal.offsetWidth/2-dialogW/2) +'px';
		objDialog.style.top     = (document.body.clientHeight/2-dialogH/2)+document.body.scrollTop+'px';
		objDialog.style.visibility = 'visible';		
	}
}

function closeDialog()
{
	if(objDialog) $('empty_2').removeChild(objDialog);
	if(objModal)  $('empty_1').removeChild(objModal);
	objDialog = null;
	objModal  = null;
	window.onscroll = null;
	//removeEvent( window, 'scroll', scrollDialog );
	//document.body.style.overflow='auto';
}
var progress_img = 'media/img/ajax-loaders/progressbar.gif';
function scrollDialog()
{
	if(objDialog) 
	{
		dialogH                 = objDialog.offsetHeight;
		dialogW                 = objDialog.offsetWidth;
		//alert(dialogH);
		objDialog.style.top     = (document.body.clientHeight/2-dialogH/2)+document.body.scrollTop+'px';
		objDialog.style.left     = (document.body.clientWidth/2-dialogW/2)+document.body.scrollLeft+'px';
	}
}
function show_progress(modal_obj)
{
	objDialog.style.visibility='hidden';
	x_mid = modal_obj.offsetWidth/2;
	y_mid = document.body.clientHeight/2;
	
	p_obj = document.createElement("div");
	p_obj.style.position  = 'absolute';
	$("empty_2").appendChild(p_obj);
	p_obj.innerHTML       =  '<span class="common_text_white" style="color:#ccc"><b>Please Wait...</b></span><br/>'
	                        +'<img src="'+progress_img+'"/>';		
	p_obj.style.textAlign = "center";
	p_obj.style.left      = x_mid-p_obj.offsetWidth/2  + 'px';
	p_obj.style.top       = y_mid-p_obj.offsetHeight/2 + 'px';
	p_obj.style.zIndex    = '3000';
	return p_obj;
}

function destroy_progress(progress_obj)
{
	$("empty_2").removeChild(progress_obj);
	objDialog.style.visibility = 'visible';

}

/*-------------------------------------------------------------------------------------------
  Add event to an HTML element on page
  addEvent( d,"click", create_select );
-------------------------------------------------------------------------------------------*/
function addEvent( obj, type, fn ) 
{
	//alert("Add event ["+type+"] to "+obj.id);
   if ( obj.attachEvent ) {
      obj['e'+type+fn] = fn;
       obj[type+fn] = function(){obj['e'+type+fn]( window.event );}
       obj.attachEvent( 'on'+type, obj[type+fn] );
      } else
        obj.addEventListener( type, fn, false );
 }


/*-------------------------------------------------------------------------------------------
  Remove event from an HTML element on page
-------------------------------------------------------------------------------------------*/
function removeEvent( obj, type, fn ) {
//alert("Remove event["+type+"] from "+obj.id);
if ( obj.detachEvent ) {
   obj.detachEvent( 'on'+type, obj[type+fn] );
   obj[type+fn] = null;
 } else{
     obj.removeEventListener( type, fn, false );
 	}
}

function isEmail(email) {
	var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (!filter.test(email)) return false;
	return true;
}

function isValidDate(day,month,year){
/*
Purpose: return true if the date is valid, false otherwise
Arguments: day integer representing day of month
month integer representing month of year
year integer representing year

Variables: dteDate - date object
*/
var dteDate;
//javascript months start at 0 (0-11 instead of 1-12)
dteDate = new Date(year,month,day);
return ((day==dteDate.getDate()) && (month==dteDate.getMonth()) && (year==dteDate.getFullYear()));
}


function inArray(needle, haystack, strict) {
    var found = false, key, strict = !!strict;
 
    for (key in haystack) {
        if ((strict && haystack[key] === needle) || (!strict && haystack[key] == needle)) {
            found = true;
            break;
        }
    }
 
    return found;
}