var I1 = new Image(116,25)
I1.src = "images/bg_1.jpg";
var I2 = new Image(236,25)
I2.src = "images/bg_2.jpg";
var I3 = new Image(179,25)
I3.src = "images/bg_3.jpg";
var I4 = new Image(149,25)
I4.src = "images/bg_4.jpg";

var I5 = new Image(208,63)
I5.src = "images/light.gif";
var I6 = new Image(208,63)
I6.src = "images/light_1.gif";
var I7 = new Image(208,63)
I7.src = "images/light_2.gif";
var I8 = new Image(79,47)
I8.src = "images/home_1.gif";
var I9 = new Image(79,47)
I9.src = "images/home_2.gif";
var I10 = new Image(47,47)
I10.src = "images/uhlog_1.gif";
var I11 = new Image(47,47)
I11.src = "images/unlog_2.gif";


function unlog_active(){
	document.getElementById("IMG_UNLOG").src=I11.src;
}
function unlog_no_active(){
	document.getElementById("IMG_UNLOG").src=I10.src;
}

function home_active(){
	document.getElementById("IMG_HOME").src=I9.src;
}
function home_no_active(){
	document.getElementById("IMG_HOME").src=I8.src;
}

function to_order_list_active(){
	document.getElementById("TD_ORDER_LIST").style="background-image: url(images/to_list.gif);";
}
function to_order_list_no_active(){
	document.getElementById("TD_ORDER_LIST").style="background-image: url(images/to_list.gif);";
}

function td_active(par){
	//alert(td);
	var y;
	if(par==1) y=I1.src;
    else{    	if(par==2) y=I2.src;
    	else{    		if(par==3) y=I3.src;
    		else  y=I4.src;    	}    }
	var td1=document.getElementById("TD_"+par);
	var x="url("+y+")";
	td1.style.backgroundImage=x;
	var a1=document.getElementById("A_"+par);
	a1.style.color="white";
}
function td_no_active(par){
	//alert(td);
	td1=document.getElementById("TD_"+par);
	x="url(images/bg_"+par+".jpg)";
	td1.style.backgroundImage="";
	a1=document.getElementById("A_"+par);
	a1.style.color="#817a28";
}

function tdactive(par){
	//alert(td);
	var y=I7.src;
	var td1=document.getElementById("TD"+par);
	var x="url("+y+")";
	td1.style.backgroundImage=x;
}
function tdno_active(par){
	//alert(td);
	var y=I6.src;
	var td1=document.getElementById("TD"+par);
	var x="url("+y+")";
	td1.style.backgroundImage=x;
}
function tr_over(obj){
 obj.style.cursor="hand";
 obj.style.backgroundColor="#DFDC99";
}
function tr_out(obj){
 obj.style.backgroundColor="";
}
function go_to(id){	window.location.href=id;}

function go_to_order(orderno)
{	
	document.getElementById("FORM_DATES").action = "show_order.php?orderno="+orderno;
	document.getElementById("FORM_DATES").submit();
}

function go_to_return(returnno)
{	
	document.getElementById("FORM_DATES").action = "show_return.php?returnno="+returnno;
	document.getElementById("FORM_DATES").submit();
}

function go_to_list()
{
	document.getElementById("FORM_TOLIST").submit();
}

function to_list_over(obj){
 obj.style.cursor="hand";
 obj.style.backgroundImage = 'url(images/light_4.gif)';
}
function to_list_out(obj){
	obj.style.backgroundImage = 'url(images/light_3.gif)';
}

var dtCh= ".";
var minYear=2010;
var maxYear=minYear+1;

function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag){
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   } 
   return this;
}

function isDate(dtStr,word){
	var daysInMonth = DaysArray(12);
	var pos1=dtStr.indexOf(dtCh);
	var pos2=dtStr.indexOf(dtCh,pos1+1);
	var strDay=dtStr.substring(0,pos1);
	var strMonth=dtStr.substring(pos1+1,pos2);
	var strYear=dtStr.substring(pos2+1);
	if (strYear.length==2) strYear = "20"+strYear;
	strYr=strYear;
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1);
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1);
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1);
	}
	month=parseInt(strMonth);
	day=parseInt(strDay);
	year=parseInt(strYr);
	if (pos1==-1 || pos2==-1){
		return "Дата должна быть в формате : дд.мм.гггг";
	}
	if (strMonth.length<1 || month<1 || month>12){
		return "Укажите правильную дату "+word;
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		return "Укажите правильную дату "+word;
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		return "Укажите правильную дату "+word;
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
		return "Укажите правильную дату "+word;
	}
return "ok";
}

/*function bin_search(arr, key, start, end)
{
	var middle = (start+end)/2;
	if (arr[middle] == key) return middle;
	if (arr[middle] > key) return bin_search(arr,key,start,middle);
	if (arr[middle] < key) return bin_search(arr,key,middle,end);
}*/
function check_lindate(linePos)
{
	var itemno = document.getElementById('item['+linePos+']').value;
	var orderno = document.getElementById('order['+linePos+']').value;
	var orderdate = document.getElementById('date['+linePos+']').value;
	var operation = document.getElementById('operation['+linePos+']').value;
	var reason = document.getElementById('reason['+linePos+']').value;
	var qty = document.getElementById('qty['+linePos+']').value;
	var xchange = document.getElementById('xchange['+linePos+']').value;
	var checker = document.getElementById('checker['+linePos+']').value;
	var last_itemno = document.getElementById('item['+lineCount+']').value;
	var itemindex = 0;
	var found = false;
	var msg = '';
	
	if ((operation == 3) || (operation == 4))
		document.getElementById('reason['+linePos+']').value = 'НЕДВЛ РЕГ';
		
	if (orderno == '')
		return 'Введите корректный номер заказа!';
	
	if (orderno < '000001' | orderno > '999999')
		return 'Введите корректный номер заказа!';
		
	if ((orderno % 1) !== 0)
		return 'Введите корректный номер заказа!';

	/*for (var i = 1; i <= lineCount; i+=1)
	{	
		if ((document.getElementById('order['+i+']').value == orderno) && (document.getElementById('status['+i+']').value == 'OK')) 
		{
			document.getElementById('date['+linePos+']').value = document.getElementById('date['+i+']').value;
			break;
		}
	}*/
	
	if(orderdate == '__.__.____' | orderdate == '') 
		return 'Введите дату заказа'; 
	else 
	{
		msg = isDate(orderdate,"заказа");
		if (msg != "ok") 
			return msg;

/*		var pos1=orderdate.indexOf(dtCh);
		var pos2=orderdate.indexOf(dtCh,pos1+1);
		var strDay=orderdate.substring(0,pos1);
		var strMonth=orderdate.substring(pos1+1,pos2);
		var strYear=orderdate.substring(pos2+1);

		if (strYear.length==2) strYear = "20"+strYear;

		var lastDate=new Date();		
		var now = new Date();

		odate = strYear + "-" + strMonth + "-" + strDay;
		lastDate.DateAdd({interval:"d",number:21,date:odate,language:"en"});
		document.getElementById('checker[1]').value = (1900 + lastDate.getYear()) + "-" + (lastDate.getMonth()+1) + "-" + lastDate.getDate();
		if (lastDate.getYear() + "-" + lastDate.getMonth() + "-" + lastDate.getDate() < now.getYear() + "-" + now.getMonth() + "-" + now.getDate())
		{
			return 'Истек срок возвратов и обменов по этому заказу!';
		}*/
	}
	var j = binarySearch(return_reasons,1,reasonsCount,reason);	
	if (itemno == '')
	{
		return 'Введите артикул возврата!';
	}
	else
	{
		itemindex = binarySearch(availableItems[0],1,availableItems[0][0],itemno);
		if (itemindex >= 0) 
		{
			if (last_itemno != '') add_line(linePos);
			if (availableItems[3][itemindex] == 0)
			{
				if (reason != 'НЕДВЛ РЕГ' && return_location[j] != 'БРАК' && reason != 'НЕКОМПЛ' && reason != 'ОШИБКА' && reason != 'ПЕРЕСОРТ')
					return 'Недоступен возврат по артикулу!';
			}
		}
		else 
			return 'Некорректный артикул возврата!';
	}
	
	

	if (!(qty) | !isInteger(qty))
		return 'Введите количество!';

	if (operation == 1 && reason == '')
		return 'Введите причину возврата!';	

	if (operation == 1 && reason == 'НЕДВЛ РЕГ')
		return 'Измените операцию на НЕДОВЛОЖЕНИЕ!';
	
	if (operation == 2 && reason == '')
		return 'Введите причину обмена!';
	
	if (operation == 2 && xchange == '')
		return 'Введите артикул обмена!';
		
	if (reason == '-')
		return 'Введите причину!';
		
	if (operation == 3 && checker == '')
		return 'Введите фамилию сборщика!';
		
	if (operation == 2 && xchange !== '')
	{
		
		if (binarySearch(stockout,1,stockout[0],xchange) >= 0)
			return 'Артикул обмена отсутствует!';
			
		
		/*found = false;
		for (i = 1; i <= availableItems[0][0]; i+=1)
		{
			if (availableItems[0][i] == xchange)
			{
				found = true;
				break;
			}
		}*/
		i = binarySearch (availableItems[0], 1, availableItems[0][0], xchange);
		if (i < 0)	
			return 'Некорректный артикул обмена!';
			
		if ((availableItems[1][i] !== availableItems[1][itemindex]) && (reason != 'НЕДВЛ РЕГ') && (reason != 'ОШИБКА') && (reason != 'НЕКОМПЛ') && (return_location[j] != 'БРАК'))
			return 'Проверьте тип продукции обмена!';
	}
	
	if ((operation == 2) && (itemno.substr(0,3) !== xchange.substr(0,3)) && (reason != 'НЕДВЛ РЕГ') && (reason != 'ОШИБКА') && (reason != 'НЕКОМПЛ') && (return_location[j] != 'БРАК'))
		return 'Обмен за пределами модели!';
	
	if ((operation != 2) && (xchange !== ''))
		return 'Проверьте тип операции!';
		
	return 'OK';

}

function check_line(linePos)
{
	var errorMessage = '';

	errorMessage = check_lindate(linePos);
	
	add_check_status(linePos,errorMessage);
	
}

function add_line(linePos)
{
	linePos += 1;
	document.getElementById("ACTIVE_PAGE1_").insertRow(linePos); 
	document.getElementById("ACTIVE_PAGE1_").rows[linePos].insertCell(0).innerHTML='<INPUT name="order['+linePos+']" id="order['+linePos+']" type="text" value="" onblur="check_line('+linePos+');"  onchange="alerted=false;" maxlength="6" size="4">';
	document.getElementById("ACTIVE_PAGE1_").rows[linePos].cells[0].align = "center";
	document.getElementById("ACTIVE_PAGE1_").rows[linePos].insertCell(1).innerHTML='<INPUT name="date['+linePos+']" id="date['+linePos+']" type="text" value="__.__.____" onblur="check_line('+linePos+');" maxlength="10" size="7">'; 
	document.getElementById("ACTIVE_PAGE1_").rows[linePos].cells[1].align = "center";
	document.getElementById("ACTIVE_PAGE1_").rows[linePos].insertCell(2).innerHTML='<INPUT name="item['+linePos+']" id="item['+linePos+']" type="text" value="" maxlength="6" size="4" onblur="check_line('+linePos+');" onchange="alerted=false;">'; 
	document.getElementById("ACTIVE_PAGE1_").rows[linePos].insertCell(3).innerHTML='<INPUT name="qty['+linePos+']" id="qty['+linePos+']" type="text" value="" onblur="check_line('+linePos+');" maxlength="3" size="1">'; 
	document.getElementById("ACTIVE_PAGE1_").rows[linePos].insertCell(4).innerHTML=
	'<SELECT name="operation['+linePos+']" id="operation['+linePos+']" onblur="check_line('+linePos+');" size="1"><OPTION selected value="1">Возврат</OPTION><OPTION value="2">Обмен</OPTION><OPTION value="3">Недовложение</OPTION><OPTION value="4">Недовл.(Замеч.)</OPTION></SELECT>';							
	var reasonHTML = '<SELECT name="reason['+linePos+']" id="reason['+linePos+']" size="1">';
	for (var i=0; i<reasonsCount; i+=1) reasonHTML += '<OPTION value="'+return_reasons[i]+'">'+return_descr[i]+'</OPTION>';
	document.getElementById("ACTIVE_PAGE1_").rows[linePos].insertCell(5).innerHTML=reasonHTML+'</SELECT>'; 
	document.getElementById("ACTIVE_PAGE1_").rows[linePos].insertCell(6).innerHTML='<INPUT name="checker['+linePos+']" id="checker['+linePos+']" type="text" value="" onblur="check_line('+linePos+');" maxlength="30" size="10">'; 
	document.getElementById("ACTIVE_PAGE1_").rows[linePos].insertCell(7).innerHTML='<INPUT name="xchange['+linePos+']" id="xchange['+linePos+']" type="text" value="" onblur="check_line('+linePos+');" maxlength="6" size="4">';
	document.getElementById("ACTIVE_PAGE1_").rows[linePos].insertCell(8).innerHTML='<B><FONT id="status['+linePos+']" size="3" face="Calibri">&nbsp;</FONT></B>';
	lineCount += 1;
}

function add_check_status(linePos, errorMessage)
{
	var color = 'red';
	if (errorMessage == 'OK') color = 'green'; 
	document.getElementById('status['+linePos+']').color = color;
	document.getElementById('status['+linePos+']').innerHTML = errorMessage;
	document.getElementById("ACTIVE_PAGE1_").rows[linePos].cells[8].align = "center";
}


// JScript source code
	var DayName={en:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],heb:["??? ?????","??? ???","??? ?????","??? ?????","??? ?????","??? ????","???"]};
	var MonthName={en:["January","February","March","April","May","June","July","August","September","October","November","December"],heb:["?????","??????","???","?????","???","????","????","??????","??????","???????","??????","?????"]};
	
	
	
	var oneMinute=1000*60;
	var intervalObject=new Object();
	intervalObject["yyyy"]=1000*60*60*24*365;
	intervalObject["m"]=1000*60*60*24*30.333;
	intervalObject["d"]=1000*60*60*24;
	
	
	function DateAdd(dateAddObj){
		this.interval=dateAddObj.interval;
		this.number=dateAddObj.number;
		this.date=dateAddObj.date;
		this.language=dateAddObj.language;
		this.calculate=calculate;
		this.calculate();
	}

	Date.prototype.DateAdd=DateAdd;
	
	
	
	
	function calculate(){
		var paramDate=new String(this.date);
		splitDate=paramDate.split("-");
		paramDateYear=splitDate[0];
		paramDateMonth=splitDate[1]-1;
		paramDateDay=splitDate[2];
		if(paramDateMonth>12){
			alert("Invalid Month!");
			return false;
		}
		if(paramDateDay>31){
			alert("Invalid Day!");
			return false;
		}
		var paramDateObject=new Date(paramDateYear,paramDateMonth,paramDateDay);
		paramDateObject.setHours(0);
		paramDateObject.setMinutes(0);
		paramDateObject.setSeconds(0);
		paramDateObject.getTimezoneOffset() * oneMinute;
		var paramDateObjectTime=paramDateObject.getTime();
		if(typeof intervalObject[this.interval]=="undefined"){
			alert("Interval is invalid!");
			return false;
		}
		intervalObject[this.interval]=intervalObject[this.interval] * this.number;
		var newDateTime=paramDateObjectTime + parseInt(intervalObject[this.interval]);
		var newDateObject=new Date(newDateTime);
		if(this.language=="heb"){
			var newDateObjectWeekDayName=DayName.heb[newDateObject.getDay()];
			var newDateObjectMonthName=MonthName.heb[newDateObject.getMonth()];
			var newDateObjectMonthDay=newDateObject.getDate();
		}
		else{
			var newDateObjectWeekDayName=DayName.en[newDateObject.getDay()];
			var newDateObjectMonthName=MonthName.en[newDateObject.getMonth()];
			var newDateObjectMonthDay=newDateObject.getDate();
		}
		
		var newDateObjectYear=newDateObject.getFullYear();
		this.weekDay=newDateObjectWeekDayName;
		this.month=newDateObjectMonthName;
		this.monthDay=newDateObjectMonthDay;
		this.year=newDateObjectYear;
		
	}

function check_pay_date (lineNo)
{
	var msg = isDate(document.getElementById('pay_date'+lineNo).value,"оплаты");
	if (msg != "ok")
	{
		alert(msg);
		return false;
	}
	else
	{	
		return true;
	}
}

function check_return()
{
	for (var i = 1; i <= lineCount; i+=1)
	{
		if (
				(document.getElementById('status['+i+']').innerHTML != 'OK') &&
				(document.getElementById('status['+i+']').innerHTML != '&nbsp;')
		   )	
		{   
			if (	(document.getElementById('order['+i+']').value != '') |
					(document.getElementById('item['+i+']').value != '')
				)
			{
				alert ('Исправьте ошибки в строке номер '+i+' или сотрите ее полностью!');
				return false;
			}
		}

	}
	return confirm('Разместить операции в системе? Внимание! После размещения операций, изменение позиций будет невозможно!');
}

function binarySearch(array,Lb,Ub,key)
{
	var m = 0;
	for (var i = 1; i < 2; i--)
	{
		if (((Lb + Ub) % 2) != 0) m = ((Lb + Ub) / 2) - 0.5;
		else m = ((Lb + Ub) / 2);
		if (key < array[m]) Ub = m - 1;
		else if (key > array[m]) Lb = m	+ 1;
		else return m;
		if (Lb > Ub) return -1;
	}
}

function check_mob()
{
	var mob = document.forms["FORM_REG"].mobile_phone.value;
	mob = mob.replace(/[^0-9]/gi,"");
	document.forms["FORM_REG"].mobile_phone.value = mob;
	if (mob.length==0) return true;
	if (mob.length!=11)
	{	
		alert('Номер мобильного телефона должен содержать 11 цифр. Пример: 70123456789');
		return false;
	}
	if (mob.indexOf("7")!=0)
	{	
		alert('Номер мобильного телефона должен начинаться с кода страны 7 (Россия). Пример: 70123456789');
		return false;
	}
	return true;
}

function check_phone()
{
	var mob = document.forms["FORM_REG"].phone.value;
	mob = mob.replace(/[^0-9]/gi,"");
	document.forms["FORM_REG"].phone.value = mob;
	if (mob.length==0) return true;
	if (mob.length!=11)
	{	
		alert('Номер домашнего телефона должен содержать 11 цифр, включая код города. Пример: 70123456789');
		return false;
	}
	if (mob.indexOf("7")!=0)
	{	
		alert('Номер домашнего телефона должен начинаться с кода страны 7 (Россия). Пример: 70123456789');
		return false;
	}
	return true;
}


