/*
//Crashes forms submits bt reload
var cur = new Image();
cur.src = "";
*/

/*
var minus=new Image();
minus.src="../images/minus.gif";
var plus=new Image();
plus.src="../images/plus.gif";

var add=new Image(15,15);
add.src="../images/icon_add.gif";
var edit=new Image(15,15);
edit.src="../images/icon_edit.gif";
var del=new Image(15,15);
del.src="../images/icon_del.gif";
var preview=new Image(15,15);
preview.src="../images/icon_preview.gif";
var save=new Image(15,15);
save.src="../images/icon_save.gif";
*/




function Calendar() {
	//	alert('Calendar()');
	var height=250;
	var width=250;
	var top = (screen.height - height) / 3 ;
	var left = (screen.width - width) / 2 ;
	win=window.open('../shared/Calender.php', 'Calendar_pop','toolbar=no,location=0,directories=no,status=0,menubar=no,scrollbars=no,resizable=0,copyhistory=no,width='+width+',height='+height+',top='+top+',left='+left+'');
	win.focus();
}



function EnableForm(f)
{
	for( i = 0; i <f.elements.length; i++ )
	{
		f.elements[i].disabled = false;
	}
}

function ChangeOrder(num, lorder)
{
	try{
		var f = document.getElementById('searchform');
		if (num != '')
		{
			EnableForm(f);
		}
		f.order.value=num;
		
		if(num != lorder)
		{
			f.lorder.value='';
			f.ordcount.value='';
		}
		f.submit();
	}
	catch(e) {
		alert(e.message)
	}
}

function ResetOrder()
{
	return ChangeOrder('',1);
}
function openwindow(URL, WinName, height, width, external){

	if(height=='' || !height)
	height=screen.height/2
	height_factor = ((screen.height/100)*90)
	if(height>=height_factor)
		height=height_factor;

	if(width=='' || !width)
		width=screen.width/2
	width_factor = ((screen.width/100)*98)
	if(width>=width_factor)
		width=width_factor;

	var top=((screen.height-height)/2)-(screen.height/20);
	if(top<1) top=1;

	var left=(screen.width - width) / 2 ;
	if(left<1) left=1;

	win = window.open(URL, WinName, 'toolbar=no,location=no,directories=no,status=0,menubar=no,scrollbars=1,resizable=1,copyhistory=no,width='+width+',height='+height+',top='+top+',left='+left+'');
	if(!external)
	{
		win.resizeTo(width, height);
		win.moveTo(left, top);
	}
	win.focus();
	
	return win;
	
}
/*
function CheckOnlyNumbersKP(evt){
	// Firefox + IE fix on 'event' message
	evt = (evt) ? evt : ((window.event) ? window.event : "");
	//alert(evt.keyCode);
	if ((evt.keyCode > 0 && evt.keyCode < 46) || (evt.keyCode > 57) ) 	
		evt.returnValue = false;
}
*/

function Check_Numbers(e){
    var evt = e ? e : window.event;
    // 45='-', 46='.', 48='0', ..., 57='9'

    var keyCode = evt.keyCode ? evt.keyCode : evt.charCode;
    	if(keyCode!==9){  // if not TAB
            //alert(keyCode); 
            if ((keyCode < 45 && keyCode != 0) || keyCode > 57 || keyCode == 47 ){
                try{
                    if(document.all && !window.opera){ // IE
                    	evt.returnValue = false;
                    } else{ // Mozilla, Opera
                        evt.preventDefault();
                    }
                } catch(err){
                    // do nothing
                }
            }        
        }
        //else{evt.select();}
}

function Check_Numbers_With_Floating_Point(e,number){
	var Num = [];
	Num = number.split(".");
    if(Num.length == 3){
    	if(document.all && !window.opera){ // IE
                evt.returnValue = false;
            } else{ // Mozilla, Opera
                evt.preventDefault();
            }
    }
    var evt = e ? e : window.event;
    // 45='-', 46='.', 48='0', ..., 57='9'

    var keyCode = evt.keyCode ? evt.keyCode : evt.charCode;
    	if(keyCode!==9){  // if not TAB
            //alert(keyCode); 
            if ((keyCode < 45 && keyCode != 0) || keyCode > 57 || keyCode == 47 ){
                try{
                    if(document.all && !window.opera){ // IE
                    	evt.returnValue = false;
                    } else{ // Mozilla, Opera
                        evt.preventDefault();
                    }
                } catch(err){
                    // do nothing
                }
            }        
        }
        //else{evt.select();}
}


function allow_numeric(obj){
  if (!/^\d+(\.\d*)?$/.test(obj.value)){
    obj.value= theVal = obj.value.replace(/[^0-9.]/g,'');
    if(theVal>""){
      obj.value=parseFloat("0"+theVal);
      obj.focus()
    }
  }
}




    
function CheckOnlyNumbers(field){
	for(i=33;i<=45;i++)
	{
		str = String.fromCharCode(i);
		if(field.value.indexOf(str)>=0)
		{
			field.value='';
			break;
		}
	}
	for(i=58;i<=255;i++)
	{
		str = String.fromCharCode(i);
		if (field.value.indexOf(str)>=0)
		{
			field.value='';
			break;
		}
	}		
}


function CheckEmail(textToCheck) 
{
//	alert ("Hello from man/script/script.js: CheckEmail()  function");
//     var emailReg = "^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$";
//     var emailReg = "/^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i";

	var emailReg = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
     var regex = new RegExp(emailReg);
     return regex.test(textToCheck);
}

function AddComa(str)
{
	var ii=0, s="", ss="";
	for(i=(str.length-1);i>=0;i--)
	{
		ii++;
		s+=String(str.substr(i,1));
		if(ii%3==0)
			s+=",";
	}
	for(i=(s.length-1);i>=0;i--)
		ss+=s.substr(i,1);

	if(ss.substr(0,1)==",")
		ss = ss.substr(1,ss.length);
	return ss;
}


function ResetForm(f)
{
	f.reset();
	for ( i=0; i < f.elements.length; i++ )
	{
		input = f.elements[i];
		if ( input.disabled == false )
		{
			switch( input.type )
			{
				case "select-one":
					input.options[0].selected = true;
					break;
	
				case "select-multiple":
					for ( j=0; j<input.length; j++ )
						input.options[j].selected = false
					break;
	
				case "radio":
					f[input.name][0].checked = true;
					break;
					
				case "checkbox":
					input.checked = false;
					break;
	
				case "text":
				case "textarea":
					input.value="";
					break;
			}
		}
	}
}

function reloadopener(i)
{
	try{
		var oo = window.opener.opener;
		
		if( oo && !oo.closed) {
			oo.focus();
			oo.location.reload();
		}
	}
	catch(e){
		//alert(e.message)
	}
	
	var o = window.opener;
	
	if(o && !o.closed)
	{
		o.focus();
		o.location.reload();
	}
	if ( ! i )
	{
		window.close();
	}
	
}

function focusopener()
{
	var o = window.opener;
	if(o && !o.closed)
	{
		o.focus();
	}
	window.close();
}

function opacity(img,op)
{
	img.style.filter='alpha(style=0,opacity='+op+')';
}

function opacity_out(img)
{
	img.className='trans';
}

function opacity_over(img)
{
	img.className='trans_over';
}

function ShowLayer(d, ic)
{
	
	var myDiv = document.getElementById(d);
	var myIcon = document.getElementById(ic);
	if(myDiv)
	{
		if(myDiv.style.display=='none')
		{
			myDiv.style.display='block';
			myIcon.src=minus.src;
		}
		else
		{
			myDiv.style.display='none';
			myIcon.src=plus.src;
		}
	}
}
/*
function MouseOver(id, len)
{
	row = document.getElementById(id);
	count = len ? len : row.cells.length ;
	for(curr_cell = 0; curr_cell < count; curr_cell++) 
		row.cells[curr_cell].className='blackBorder';
}*/

function MouseOut(id, len)
{
row = document.getElementById(id);
count = len ? len : row.cells.length ;
for(curr_cell = 0; curr_cell < count; curr_cell++) 
	row.cells[curr_cell].className='grayBorder';
}


function VerifyDate(f, y, m, d)
{
	var NewDay = Math.abs(f[d].value);
	var NewMonth = Math.abs(f[m].value)-1;
	var NewYear = Math.abs(f[y].value);
	
	f[d].options.length=0;
	
	for( i = 1; i <= 31; i++ )
	{
		CheckDate = new Date(NewYear, NewMonth, i)
		if ( CheckDate.getDate() != i )
		{
			break;
		}
		f[d].options.length++;
		f[d].options[i-1].value = AddZero(i)
		f[d].options[i-1].text = AddZero(i)
		if( i == NewDay )
		{	
			f[d].options[i-1].selected = true;
			NewDay = i;
		}
	}
	if( NewDay > (i - 1) )
	{
		NewDay = (i - 1);
		f[d].value = AddZero(NewDay);
	}
}

function CompareDates(f, y1, m1, d1, y2, m2, d2, src)
{
	var mydate1 = new Date(f[y1].value, f[m1].value, f[d1].value, 0, 0, 0);
	var mydate2 = new Date(f[y2].value, f[m2].value, f[d2].value, 0, 0, 0);
	
	if( mydate1.valueOf() > mydate2.valueOf() )
	{
		switch(src)
		{
			case 1:
			VerifyDate(f, y1, m1, d1);
			VerifyDate(f, y1, m1, d2);
			
			f[y2].value = f[y1].value;
			f[m2].value = f[m1].value;
			f[d2].value = f[d1].value;
			return;

			case 2:
			VerifyDate(f, y2, m2, d2);
			VerifyDate(f, y2, m2, d1);
			
			f[y1].value = f[y2].value;
			f[m1].value = f[m2].value;
			f[d1].value = f[d2].value;	
			return;
		}		
	}
	else if( src == 1 )
	{
		VerifyDate(f, y1, m1, d1);
		return;
	}
	else
	{
		VerifyDate(f, y2, m2, d2);			
		return;
	}
}

function ChangeDateFieldsStatus( f, Select )
{
	for ( i = 0; i < f.elements.length; i++ )
	{
		e = f.elements[i];
		if( e.type == "select-one" )
		{
			switch ( e.name )
			{
				case "y1":
				case "m1":
				case "d1":
				case "y2":
				case "m2":
				case "d2":
				e.disabled = Select ? true : false;
				break;				
			}			
		}
	}	
	f.DateType.disabled =  Select ? false : true;
}

function AddZero(Number)
{
	Number = String(Number);
	if(Number.length < 2)
	{
		Number = "0" + Number;
	}
		
	return Number;
}	

function MouseOver(id, len)
{
	row = document.getElementById(id);
	count = len ? len : row.cells.length ;
	for(curr_cell = 0; curr_cell < count; curr_cell++)
	row.cells[curr_cell].className='blackBorder';
	try
	{
		row1 = document.getElementById(id+"new");
		count = len ? len : row1.cells.length ;
		for(curr_cell = 0; curr_cell < count; curr_cell++)
		row1.cells[curr_cell].className='blackBorder';
		row1.className=row.className;

	}
	catch(e){}
	try
	{
		row2 = document.getElementById(id.substring(0,id.length-3));
		count = len ? len : row2.cells.length ;
		for(curr_cell = 0; curr_cell < count; curr_cell++)
		row2.cells[curr_cell].className='blackBorder';
		row2.className=row.className;
	}
	catch(e){}
}


Math._prepareForCalc = function(a)
{
	a = parseFloat(a);
	var aStr = a.toString();
	var aDec = aStr.indexOf('.') >= 0 ? aStr.substr(aStr.indexOf('.') + 1, aStr.length) : '';
	return { number: a, decimals: aDec }
}

Math.add = function(a, b)
{
	a = Math._prepareForCalc(a);
	b = Math._prepareForCalc(b);
	var fixed = Math.max(a.decimals.length, b.decimals.length) + 1;
	var c = Number(Number(a.number + b.number).toFixed(fixed));
	return c;
}

Math.sub = function(a, b)
{
	a = Math._prepareForCalc(a);
	b = Math._prepareForCalc(b);
	var fixed = Math.max(a.decimals.length, b.decimals.length) + 1;
	var c = Number(Number(a.number - b.number).toFixed(fixed));
	return c;
}

Math.div = function(a, b)
{
	a = Math._prepareForCalc(a);
	b = Math._prepareForCalc(b);
	var fixed = Math.max(a.decimals.length, b.decimals.length) + 1;
	var c = Number(a.number / b.number); // no known issues
	return c;
}

Math.mul = function(a, b)
{
	a = Math._prepareForCalc(a);
	b = Math._prepareForCalc(b);
	var fixed = Math.add(a.decimals.length, b.decimals.length) + 1;
	var c = Number(Number(a.number * b.number).toFixed(fixed));
	return c;
}

function loadXMLDocument(url,outputFunction,sync)
{
	if (window.XMLHttpRequest) // Mozilla
	{
		req = new XMLHttpRequest();
		if(outputFunction)req.onreadystatechange = eval(outputFunction);
		req.open("GET", url, true);
		req.send(null);
	}
	else if (window.ActiveXObject) // IE
	{
		req = new ActiveXObject("Microsoft.XMLHTTP");
		if (req)
		{
			if(outputFunction)req.onreadystatechange = eval(outputFunction);
			req.open("GET", url, sync ? false : true);
			req.send();

		}
	}
}

function CurDate(formHandler, DateField)
{
	var d = new Date();
	var day = AddZero(d.getDate());
	var month = AddZero(d.getMonth()+1);
	var year = d.getFullYear();

	DateField = formHandler[DateField];
	DateField.value = String(year + "-" + month + "-" + day);

	return String(day + "/" + month + "/" + year);
}

function BmbyRound(num, len)
{
	if ( isNaN(parseInt(len)) ) len = 0;
	var factor = Math.pow(10, len);
	return parseFloat(Math.round( parseFloat(num) * factor ) / factor);
}

function checkDate(day, month, year)
{
	//alert(day+ "/" + month+ "/" + year) 
	var monthLength = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
	
	if (!day || !month || !year)
		return false;

	if(month>12 || day>31)
		return false;
		
	if (year/4 == parseInt(year/4))
		monthLength[1] = 29;

	if (day > monthLength[month-1])
		return false;

	monthLength[1] = 28;

	var now = new Date();
	now = now.getTime(); //NN3

	var dateToCheck = new Date(year, month-1, day , 0, 0,0,0);
	var checkDate = dateToCheck.getTime();
	
	//alert(checkDate);
	return checkDate;
}

function bmbyAjax()
{
	var _request;
	var _targetDiv;
	var _targetFunction;
	var _target = 0;
	
	this.LoadTable = function()
	{
		if (_request.readyState == 4)
		{
			if (_request.status == 200)
			{
				response = _request.responseText;
				if(response != null)
				{
					switch(_target)
					{
						case 1:
							_targetDiv.innerHTML = response;
							break;
						case 2:
							_targetFunction = _targetFunction  + "(_request)";
							eval(_targetFunction);
							break;
						case 3:
							_targetDiv.innerHTML = response;
							_targetFunction = _targetFunction  + "(_request)";
							eval(_targetFunction);
							break;
					}
				}
			}
		}
	}
	
	this.loadDocument = function(url)
	{
		if (window.XMLHttpRequest)
		{
			_request = new XMLHttpRequest();
			_request.onreadystatechange = this.LoadTable;
			_request.open("GET", url, true);
			_request.send(null);
		}
		else if (window.ActiveXObject) // IE
		{
			_request = new ActiveXObject("Microsoft.XMLHTTP");
			if (_request)
			{
				_request.onreadystatechange = this.LoadTable;
				_request.open("GET", url, true);
				_request.send();
			}
		}
	}
	
	this.targetDIV = function(trg)
	{
		_targetDiv = trg;
		_target += 1;
	}
	
	this.targetFunction = function(fnc)
	{
		_targetFunction = fnc;
		_target += 2;
	}
}

function PosElement(obj)
{
	var width = obj.offsetWidth;
	var height = obj.offsetHeight;
	var left = 0;
	var top = 0;

	while(obj)
	{
		left += obj.offsetLeft - obj.scrollLeft;
		top += obj.offsetTop - obj.scrollTop;

		if(obj.style.borderTopWidth != '')
		{
			top += parseInt(obj.style.borderTopWidth);
		}
		if(obj.style.borderLeftWidth != '')
		{
			left += parseInt(obj.style.borderLeftWidth);
		}
		obj = obj.offsetParent;
	}
	top += document.body.scrollTop;
	left += document.body.scrollLeft;
	return {"left": left, "top": top, "width": width, "height": height};
}


String.prototype.replaceAll = function(regexpression, replaceString)
{
	var value = this;
	var newValue = "";
	while(value != newValue)
	{
		newValue = value;
		value = value.replace(regexpression, replaceString);
	}
	return value;
}




function PHPnumber_format(nStr,decimal)
{

	snStr = new String(nStr);
	noStr = snStr.replaceAll(',','');

	nStr = new Number(noStr);
	nStr = nStr.toFixed(decimal);
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = (/([0-9]+)([0-9]{3})/) ;

	while (rgx.test(x1)) {
		x1 = x1.replaceAll(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}
