isIE = false;
isIE6 = false;
if (navigator.appVersion.indexOf("MSIE") > -1) {
	isIE = true;
	splited = navigator.appVersion.split("MSIE");
	version = parseFloat(splited[1]);
	if (version > 5 && version < 7) {
		isIE6 = true
	}
};
function disabledForm(formId) {
	form = document.getElementById(formId);
	for (i = 0; i < form.length; i++) {
		el = form.elements[i];
		el.disabled = true;
	}
}
function showLayer() {
	var div = document.createElement('div');
	div.id = 'layer';	
	div.innerHTML = '<div id="layerPage" style="z-index:9999;position:absolute;top:0px;left:0px;width:'
			+ getPageSize()[0]
			+ 'px;height:'
			+ getPageSize()[1]
			+ 'px;background:#FFFFFF;opacity: 0.6; -moz-opacity: 0.6; filter: progid:DXImageTransform.Microsoft.Alpha(opacity=60); zoom:1;"><!--? --></div>';
	document.body.appendChild(div);
}
function showAjaxLoad() {
	div = document.createElement('div');
	div.id = 'ajaxLoader';
	x = document.viewport.getDimensions().width / 2 - 100;
	y = document.viewport.getDimensions().height / 2 - 100;
	div.innerHTML = '<div style="position:fixed;width:200px;height:100px;text-align:center;z-index:9999;left:'
			+ x
			+ 'px;top:'
			+ y
			+ 'px;"><img style="display:block;" alt="Wysyłanie danych" src="../img/ajaxLoad.gif" /></div>';
	document.body.appendChild(div);
	showLayer();
}
function hiddenAjaxLoad() {
	if ($('layer'))
		$('layer').remove();
	if ($('ajaxLoader'))
		$('ajaxLoader').remove();		
}
function hiddenFormIE6(elementId) {
	if (isIE6) {
		$(elementId).style.visibility = 'hidden';
	}
}
function visibleFormIE6(elementId) {
	if (isIE6) {
		$(elementId).style.visibility = 'visible';
	}
}
function stopEvent(e) {
    if (e.stopPropagation) {
	    e.stopPropagation();
    } else {
	    e.cancelBubble = true;
    }
    
    if (e.preventDefault) {
	    e.preventDefault();
    } else {
	    e.returnValue = false;
	}
}
function checkCheckBox(id) {
	if (!$('error_box'+id)) {
		html = '<div id="error_box'+id+'" class="error_box">';
		html = html + '<div id="error_box_content'+id+'">'+$('formCheckBox'+id).innerHTML+'</div>';
		html = html + '<div class="errors center">pole jest wymagane</div>';
		html = html + '<span class="c1b corner corners-white-orange"> </span><span class="c2b corner corners-white-orange"> </span><span class="c3b corner corners-white-orange"> </span><span class="c4b corner corners-white-orange"> </span>';
		html = html + '</div>';
		$('formCheckBox'+id).innerHTML = html;
	};
}
function checkErrorClass(id) {	
	if ($('formCheckBox'+id)) {
		var inputs = $('formCheckBox'+id).getElementsByTagName('input');
		if ($('error_box_content'+id)) {		
			$('formCheckBox'+id).innerHTML = $('error_box_content'+id).innerHTML;					
			for ( var i = 0; i < inputs.length; i++) {
				var elem = inputs[i];
				if(elem.type == 'checkbox'){
					elem.checked = true;
				}
			}
		}else{
			for ( var i = 0; i < inputs.length; i++) {
				var elem = inputs[i];
				if(elem.type == 'checkbox'){
					if(!elem.checked){
						checkCheckBox(id);
					}				
				}
			}
		}
	};
}


function check(id) {
	id.checked = true;
}
function checkInputRadio(id) {
	id.checked = true;
}
function generateDoubleRequest(element, cidParam, offerId, action) {
	var isAllChecked = true;
	var form = document.createElement('form');
	form.action=action;
	form.method='GET';
	form.target='_blank';
	form.id='form'+cidParam;
	form.innerHTML=element.innerHTML;
	form.style.display='none';
	
	var inputs = element.getElementsByTagName('input');
	for ( var i = 0; i < inputs.length; i++) {
		var elem = inputs[i];
		if(elem.type == 'checkbox' && !elem.checked){
			isAllChecked = elem.checked;
		}
	}	
	var inputsForm = form.getElementsByTagName('input');
	for ( var i = 0; i < inputsForm.length; i++) {		
		if(isAllChecked && elem.type == 'checkbox'){
			inputsForm[i].checked = true; 
		}
	}
	document.body.appendChild(form);
	if (isAllChecked) {		
		form.submit();		
		$('form'+cidParam).remove();
	} else {		
		checkCheckBox(offerId);
		$('form'+cidParam).remove();
	}
	return false;
}
function getPageSize() {
	var xScroll, yScroll;
	if (window.innerHeight && window.scrollMaxY) {
		xScroll = window.innerWidth + window.scrollMaxX;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight) { // all
		// but
		// Explorer
		// Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla
		// and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	var windowWidth, windowHeight;
	if (self.innerHeight) { // all except Explorer
		if (document.documentElement.clientWidth) {
			windowWidth = document.documentElement.clientWidth;
		} else {
			windowWidth = self.innerWidth;
		}
		windowHeight = self.innerHeight;
	} else if (document.documentElement
			&& document.documentElement.clientHeight) { // Explorer 6 Strict
		// Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}
	// for small pages with total height less then height of the viewport
	if (yScroll < windowHeight) {
		pageHeight = windowHeight;
	} else {
		pageHeight = yScroll;
	}
	// for small pages with total width less then width of the viewport
	if (xScroll < windowWidth) {
		pageWidth = xScroll;
	} else {
		pageWidth = windowWidth;
	}
	arrayPageSize = new Array(pageWidth, pageHeight, windowWidth, windowHeight);
	return arrayPageSize;
}
function checkPostCode(code, event) {
	var v = code.value;
	var nv = '';
	for ( var i = 0; i < v.length; i++) {
		if (i == 2){
			if(isDigit(v.charAt(i))){//w miejscu myslnika jest cyfra
				nv = nv + '-';
			}
			else if(v.charAt(i) != '-'){
				break;
			}
		}
		if (isDigit(v.charAt(i)) || (v.charAt(i) == '-' && i == 2)) {
			nv = nv + v.charAt(i);
		}
	}
	if (event.keyCode != 37 && event.keyCode != 39 && event.keyCode != 8) {//
		code.value = nv
	}
	// alert(event.type);
	if (code.value.length != 6) {
		if (code.value.length == 2 && lenghtCode < 2)
			code.value = code.value + '-';
		lenghtCode = code.value.length;
		// kod nie poprawny
		return false;
	}
	if (!isDigit(event.keyCode - 48) && !isDigit(event.keyCode - 96)
			&& event.type != "change") {
		// nie wcisnieto liczby
		return false;
	}
	return true;
}

function checkDateFormat(date, event) {
	var v = date.value;
	
	var tab = v.split("-");
	
	if (tab.length == 3) {
		if (tab[0].length == 1) {
			tab[0] = "0" + tab[0];
		}
		if (tab[1].length == 1) {
			tab[1] = "0" + tab[1];
		}
		if (tab[2].length > 4) {
			tab[2] = tab[2].substring(0, 4);
		}
		date.value = tab[0] + "-" + tab[1] + "-" + tab[2];
		return true;
	} else if (tab.length == 1 && v.length == 8) {
		date.value = v.substring(0, 2) + "-" + v.substring(2, 4) + "-" + v.substring(4, 8);
		return true;
	}
	return false;
}

function isDigit(str) {
	str = str + '';
	if (str.length > 1)
		return false;
	var s = '0123456789';
	return s.indexOf(str) != -1;
}
function isDigitKey(event) {
	var charCode;
	if (isIE) charCode = event.keyCode;
	else charCode = event.which;
	if (charCode > 31 && (charCode < 48 || charCode > 57)) {
		return false;
	}	
	return true;
}

var ComparationOfert = {
	maxComparationCompare : 4,	
	offerSelectedClassName : 'selectToCompare',
	compareOfferSelectedClassName : 'compareRankOfferDetails',
	tableID : 'offerTable',
	checkComparationSelection : function(chechoxId,offerId) {
		countComparationCompare = $(ComparationOfert.tableID).getElementsByClassName(ComparationOfert.offerSelectedClassName).length;		
		if (countComparationCompare >= ComparationOfert.maxComparationCompare) {
			chechoxId.checked = false;
		}		
		if(chechoxId.checked){
			$('offerId'+offerId).addClassName(ComparationOfert.offerSelectedClassName);
			if($('details'+offerId)) $('details'+offerId).addClassName(ComparationOfert.compareOfferSelectedClassName);
			$('imgOfferId' + offerId).src = '/kalkulator-oc-ac/img/pastel_green_stars.png';						
		}else{
			$('offerId'+offerId).removeClassName(ComparationOfert.offerSelectedClassName);
			if($('details'+offerId)) $('details'+offerId).removeClassName(ComparationOfert.compareOfferSelectedClassName);
			$('imgOfferId' + offerId).src = '/kalkulator-oc-ac/img/stars.png';
		}
		
	},	
	selectedForComparison : function () {
		 if($(ComparationOfert.tableID).getElementsByClassName(ComparationOfert.offerSelectedClassName).length>0) {
			 return true;
		 }else {
			 return false;
		}		
	}	
}

var Filter = {

	filterTableID :'offerTable',
	formSortTableID :'rankForm',
	filtercorporationInputsID :'corporation',
	filterRankFormID :'rankFilter',
	filtercorporationInputID :'rankFilter:corporation',
	filterpriceMaxInputID :'rankFilter:priceMax',
	filterpriceMinInputID :'rankFilter:priceMin',
	filterRankMaxInputID :'rankFilter:rankMax',
	filterRankMinInputID :'rankFilter:rankMin',
	filterRankUnitPriceMinInputID :'rankFilter:rankUnitPriceMin',
	filterRankUnitPriceMaxInputID :'rankFilter:rankUnitPriceMax',
	filterRankshareValueID :'rankFilter:shareValue',
	filterInsuranceTypeID :'rankFilter:insuranceType',
	filterDepreciationID :'rankFilter:depreciation',
	filterOriginalPartsID :'rankFilter:originalParts',
	filterAsoID :'rankFilter:aso',
	filterTerritorialExtentID :'rankFilter:territorialExtent',
	filterInstallmentNoID :'rankFilter:installmentNo',
	inputComparationCheckboxClass :'comparationSelection',
	noBidsID :'noBids',
	noBidsText :'Nie wyświetlono żadnych ofert. Zmniejsz ilość filtrów.',

	is_filter : function() {
		table = $(Filter.filterTableID);
		row = table.getElementsByTagName('tr');
		var trCount = 0;
		if ($(Filter.noBidsID))			
			$(Filter.noBidsID).remove();
		for ( var i = 0; i < row.length; i++) {
			var tr = row[i];
			var rel = tr.getAttribute('rel');
			if (rel) {
				
				var par = new String(rel).split('|');
				var offerId = par[0];
				var price = par[1];
				var rank = par[2];
				var rankUnitPrice = par[3];
				var isOC = par[4];
				var isAC = par[5];
				var shareValue = par[6];
				var depreciation = par[7];
				var originalParts = par[8];
				var aso = par[9];
				var territorialExtent = par[10];
				var corporation = par[11];
				var shareValueDefault = par[12];
				var isAssistance = par[13];
				var isNNW = par[14];
				var rateNumber = par[15];
				
				
				if (Filter.priceFilter(price)
						|| Filter.corporationFilter(corporation)
						|| Filter.rankFilter(rank)
						|| Filter.rankUnitPriceFilter(rankUnitPrice)
						|| Filter.shareValueFilter(shareValue,shareValueDefault,isAC)
						|| Filter.insuranceTypeFilter(isOC, isAC)
						|| Filter.checkboxFilter(depreciation,
								Filter.filterDepreciationID)
						|| Filter.checkboxFilter(originalParts,
								Filter.filterOriginalPartsID)
						|| Filter.checkboxFilter(aso, Filter.filterAsoID)
						|| Filter.territorialFilter(territorialExtent,
								Filter.filterTerritorialExtentID,isOC,isAC,isAssistance,isNNW)
						|| Filter.installmentNoFilter(rateNumber) ) {
					tr.style.display = 'none';					
					if(OfferDetails.isShowOfferDetails(offerId)) OfferDetails.hideOfferDetails(offerId);				
					if ($('comparationSelection'+offerId)) var input = $('comparationSelection'+offerId).getElementsByTagName('input')[0];
					if (input && input.checked=='true'){						
						input.checked = false;						
						$('offerId'+offerId).removeClassName(ComparationOfert.offerSelectedClassName);
						$('imgOfferId' + offerId).src = '/img/stars.png';					
					}
				} else {
					if (isIE) {
						trCount = trCount + 1;
						tr.style.display = 'block';
					} else {
						trCount = trCount + 1;
						tr.style.display = 'table-row';
					}
				}

			}
		}
		if (trCount < 1)
			Filter.noBids();
	},
	noBids : function() {
		var newtr = document.createElement('tr');
		var newtd = document.createElement('td');
		newtd.colSpan = 7;
		newtd.setAttribute('id', Filter.noBidsID);
		newtd.innerHTML = '<div class="bold center" style="font-size:14px;padding:20px 0;">' + Filter.noBidsText + '</div>';
		newtr.appendChild(newtd);
		tbody = $(Filter.filterTableID).getElementsByTagName('tbody');
		tbody[0].appendChild(newtr);
	},
	is_reset : function() {
		rankFormInpurts = $(Filter.filterRankFormID).getElementsByTagName(
				'input');
		for ( var i = 0; i < rankFormInpurts.length; i++) {
			if (rankFormInpurts[i].type == 'checkbox') {
				id = rankFormInpurts[i].getAttribute('id');
				var corporation = new String(id).split('_');
				if (Filter.filtercorporationInputID == corporation[0])
					rankFormInpurts[i].checked = true;
				else
					rankFormInpurts[i].checked = false;

			}
			if (rankFormInpurts[i].type == 'radio')
				rankFormInpurts[i].checked = false;
			if (rankFormInpurts[i].type == 'text') {
				if (rankFormInpurts[i].name == Filter.filterRankshareValueID)
					rankFormInpurts[i].value = 60;
				else
					rankFormInpurts[i].value = '';
			}
		}
		rankFormOptioner = $(Filter.filterInstallmentNoID).getElementsByTagName('option');
		for ( var i = 0; i < rankFormOptioner.length; i++) {
			if (installmentOption[1].selected || installmentOption[2].selected || installmentOption[3].selected || installmentOption[4].selected)
				installmentOption[0].selected = true;
			
		}
	},
	corporationFilter : function(corporation) {
		corporationInputs = $(Filter.filtercorporationInputsID).getElementsByTagName('input');
		for ( var i = 0; i < corporationInputs.length; i++) {
			name = Filter.filtercorporationInputID + '_' + corporation;
			if (corporationInputs[i].type == 'checkbox'
					&& corporationInputs[i].name == name
					&& !corporationInputs[i].checked)
				return true;
		}
		return false;
	},
	installmentNoFilter : function(rateNumber) {
		installmentOption = $(Filter.filterInstallmentNoID).getElementsByTagName('option');
		for ( var i = 0; i < installmentOption.length; i++) {
			if (installmentOption[1].selected && rateNumber == '0')
				return true;
			if (installmentOption[2].selected && (rateNumber == installmentOption[1].value || rateNumber == '0'))
				return true;
			if (installmentOption[3].selected && (rateNumber == installmentOption[1].value || rateNumber == installmentOption[2].value || rateNumber == '0') )
				return true;
			if (installmentOption[4].selected && (rateNumber == installmentOption[1].value || rateNumber == installmentOption[2].value || rateNumber == installmentOption[3].value || rateNumber == '0'))
				return true;
			if (installmentOption[0].selected || installmentOption[1].selected)
				return false;
		}		
		return false;
	},
	priceFilter : function(price) {
		var maxValue = parseInt($(Filter.filterpriceMaxInputID).value);
		var minValue = parseInt($(Filter.filterpriceMinInputID).value);
		var priceInt = parseInt(price);
		if (price < minValue || price > maxValue)
			return true;
		return false;
	},
	rankFilter : function(rank) {
		var maxValue = parseFloat($(Filter.filterRankMaxInputID).value
				.replace(/,/, "."));
		var minValue = parseFloat($(Filter.filterRankMinInputID).value
				.replace(/,/, "."));
		var priceInt = parseFloat(rank);
		if (rank < minValue || rank > maxValue)
			return true;
		return false;
	},
	rankUnitPriceFilter : function(rankUnitPrice) {
		var maxValue = parseFloat($(Filter.filterRankUnitPriceMaxInputID).value);
		var minValue = parseFloat($(Filter.filterRankUnitPriceMinInputID).value);
		var priceInt = parseFloat(rankUnitPrice);
		if (rankUnitPrice < minValue || rankUnitPrice > maxValue)
			return true;
		return false;
	},
	insuranceTypeFilter : function(isOC, isAC) {
		var oc = $(Filter.filterInsuranceTypeID + ':0');
		var ac = $(Filter.filterInsuranceTypeID + ':1');
		if (oc.checked && isAC == 'true') {
			return true;
		} else if (ac.checked && isOC == 'true' && isAC == 'false') {
			return true;
		} else {
			return false;
		}
	},
	shareValueFilter : function(sharevalue,shareValueDefault,isAC) {
		var shareValueInput = parseInt($(Filter.filterRankshareValueID).value);
		var shareValue = parseInt(sharevalue);
		if(shareValueInput != shareValueDefault){
			if(isAC=="false") return true;
			else if (shareValueInput < shareValue) return true;
			else return false;			
		}else return false;
	},
	territorialFilter : function (value, inputID,isOC,isAC,isAssistance,isNNW) {
		var depreciationInput = $(inputID);
		if (depreciationInput.checked && value == 'true' &&  (isOC == 'false' || isAC == 'true' || isAssistance == 'true' || isNNW == 'true') ) {
			return true;			
		} else {
			return false;
		}
	},
	
	checkboxFilter : function(value, inputID) {
		var depreciationInput = $(inputID);
		if (depreciationInput.checked && value == 'true') {
			return true;
		} else {
			return false;
		}
	},
	showRank : function() {
		$(Filter.formSortTableID).style.visibility = 'visible';
	},
	hideRank : function() {
		$(Filter.formSortTableID).style.visibility = 'hidden';
	},
	showTableRank : function() {		
		$(Filter.formSortTableID).show();
	}
}
function onLoadRankPage() {
	Filter.is_filter();
	Filter.showTableRank();
}
function isHide(element){
	if($(element).getStyle('display')=='none') return true;
	else return false;

}
function handleElement(element,show) {
	if (show) {	
		element.show();
	} else {
		element.hide();
	}
}
var Discounts = {	
		selectsColors : {}, 		
		colors : {'-1':'green','0':'black','1':'red'},
		setColorOption : function () {			
			for( var key in this.selectsColors ) {
				var select = $(key);
				for ( var int = 0; int < select.length; int++) {					
					if((select.length -1)==this.selectsColors[ key ].length) {
						if(int > 0 ) {
								var i = int-1;
								var colorId = this.selectsColors[ key ][ i ];
								select[int].style.color=this.colors[colorId];
								select[int].style.fontWeight='bold';
							}
					}else{												
						var colorId = this.selectsColors[ key ][ int ];
						select[int].style.color=this.colors[colorId];
						select[int].style.fontWeight='bold';
					}
				}
			}	
		}			
}
var OfferDetails ={
		id : null,
		handleOfferDetails : function(id,elem) {			
			if(OfferDetails.id==id){
				Filter.is_filter();Filter.showRank();
				hideDetails();
				$('offerId'+id).removeClassName('showOfferDetails');
				$('rankPage').setStyle({'cursor':'auto'});
				elem.style.cursor='pointer'
				this.id=null;				
				return false;
			}else {			
				this.id=id;
				$('rankPage').setStyle({'cursor':'wait'});
				elem.style.cursor='wait'
				return true;				
			}
		},
		isShowOfferDetails : function(id) {			
			if ($('details'+id) && $('details'+id).style.display!="none") {
				return true;
			}else return false;
		},		
		hideOfferDetails : function(id) {
			$('offerId'+id).removeClassName('showOfferDetails');
			if ($('details'+id)) {
				$('details'+id).hide();
				this.id=null;
			}
		}
}
var ResizeSelect = {
		selected : null,
		handleResize : function (select,event) {
			if(isIE6 && event.type=='click'){				
				this.resize(select.id);				
			}else if(isIE && !isIE6 && event.type=='mousedown'){			
				this.resize(select.id);			
			}			
		},
		resize : function(id) {
			this.selected = $(id).selectedIndex;		
			$(id).setStyle({
				'width':'auto',				
				'position':'absolute',
				'display':'block',
				'left':'0px'
			});
		},
		normalSize : function(id,event) {
			$(id).setStyle({
				'width': '',				
				'position':'static',
				'display':'block'
				});
			if(isIE6) {window.focus()};			
		}
}

function isCookieEnable(){
	html = '<ul id="login:messages" class="message"><li class="infomsg">Włącz obsługę cookies by zalogować się do rankomat.pl</li></ul>';
	if (document.cookie) {
		return true;
	} else {
		document.getElementById('login:messageBox').innerHTML = html;
		return false;
	}
}

function getCaretPosition (el){
	var iCaretPos = 0;

	if (document.selection){// IE hack
		if (el.type == 'text'){ // textbox
			var selectionRange = document.selection.createRange();
			selectionRange.moveStart ('word', -el.value.length);
			iCaretPos = selectionRange.text.length;
		}
		else{ // textarea
			iCaretPos = Math.abs(document.selection.createRange().moveStart("character", -1000000)) - 193;
		}
	}
	else if (el.selectionStart || el.selectionStart == '0'){ // Firefox
		iCaretPos = el.selectionStart;
	}

	return iCaretPos;
}

function setCaretPosition (el, iCaretPos){
	if (document.selection){ // IE
		var range;

		range = document.selection.createRange();

		if (el.type == 'text'){ // textbox
			range.moveStart ('character', -el.value.length);
			range.moveEnd ('character', -el.value.length);
			range.moveStart ('character', iCaretPos);
			range.select();
		}
		else{ // textarea
			range.collapse(false);
			range.move ('character', iCaretPos - el.value.length + el.value.split('\n').length - 1);
			range.select();
		}
	}
	else if (el.selectionStart || el.selectionStart == '0'){ // Firefox
		el.setSelectionRange(iCaretPos, iCaretPos);
	}
}

function setElementName(element, name) {
	element.name=name;
}