// Lightbox functoin
function getSiteSize(){

	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;
	}
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else {
		pageHeight = yScroll;
	}
	if(xScroll < windowWidth){
		pageWidth = xScroll;
	} else {
		pageWidth = windowWidth;
	}
	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight)
	return arrayPageSize;
}

//LigthBox function
function getSiteScroll(){

	var xScroll, yScroll;

	if (self.pageYOffset) {
		yScroll = self.pageYOffset;
		xScroll = self.pageXOffset;
	} else if (document.documentElement && document.documentElement.scrollTop){	 // Explorer 6 Strict
		yScroll = document.documentElement.scrollTop;
		xScroll = document.documentElement.scrollLeft;
	} else if (document.body) {// all other Explorers
		yScroll = document.body.scrollTop;
		xScroll = document.body.scrollLeft;
	}

	arrayPageScroll = new Array(xScroll,yScroll)
	return arrayPageScroll;
}

function redirect(pHref){
	var vPreUrl = '';
	var vBaseArr = document.getElementsByTagName('base');
	if (vBaseArr[0] != undefined);
		vPreUrl = vBaseArr[0].href;
	document.location.href = vPreUrl + pHref;
}


function getIntVal (pVal, pTrunc)
{
	vRet = (pTrunc ? parseInt (pVal, 10) : Math.round (getFloatVal (pVal)));
	return (isNaN (vRet) ? 0 : vRet);
}

function getFloatVal (pVal)
{
	vRet = new String (pVal);
	vRet = parseFloat (vRet.replace (",", "."));
	return (isNaN (vRet) ? 0 : vRet);
}

function formatVal (pVal, pDecSize, pDecPow, pDecSep)
{
	var vNeg = (pVal < 0);
	var vStr = ""+Math.round (Math.abs (pVal) * pDecPow);
	while (vStr.length <= pDecSize)
		vStr = "0" + vStr;
	var vDecPoint = vStr.length - pDecSize;
	return (vNeg ? "-" : "") + vStr.substring (0, vDecPoint) + (vDecPoint < vStr.length ? (pDecSep ? pDecSep : ".") + vStr.substring (vDecPoint, vStr.length) : "");
}

function clearForm (pForm)
{
 var i = 0;
 while (pForm.elements[i])
 {
	 if (pForm.elements[i].multiple)
	 {
	  pForm.elements[i][0].selected = true;
		for (j=1; j < pForm.elements[i].length; j++)
			pForm.elements[i][j].selected = false;
	 }
	 else
	 {
		var vType = pForm.elements[i].type;
		if (vType != 'submit' && vType != 'reset' && vType != 'button' && vType != 'image')
			pForm.elements[i].value = '';
   }
   i++;
 }
}

function UndivHint (pVal, pUndiv, pMethod, pGetNearEvenIfEqual, pJsPrec)
{
	if (pUndiv == 0)
		return 0;
	if (pUndiv < 0)
		pUndiv = 1;

	/* Zaokraglenie w celu wyelminowania bledow artytmetyki zmiennoprzecinkowej */
	vVal = Math.round (pVal * pJsPrec);
;
	vUndiv = Math.round (pUndiv * pJsPrec);
	vMod = vVal % vUndiv;

	vFloor = Math.max (vVal - vMod, 0);
	if (pMethod == 'floor')
		vRet = (vMod ? vFloor : (pGetNearEvenIfEqual && vFloor - vUndiv >= 0 ? vFloor - vUndiv : vFloor));
	else if (pMethod == 'ceil')
		vRet = (vMod || pGetNearEvenIfEqual ? vFloor + vUndiv : vFloor);
	else
		vRet = (vMod >= vUndiv/2 ? vFloor + vUndiv : vFloor);
	vRet = vRet/pJsPrec;
	return vRet;
}

function textAreaCounter(field, cntfield, maxlimit) {
	if (field.value.length > maxlimit)
		field.value = field.value.substring(0, maxlimit);
	else
		cntfield.value = maxlimit - field.value.length;
}

var Common = Class.create();

Common.prototype = {

	initialize: function() {

	},
	
	marked_element: null,

	marked_usluga_id: null,

	setcities: true,

	rollTop5: function () {

		top5 = $('top-5');
		line = $('line-dark');
		menu2 = $('menu2-flash');

		if (top5.visible()){
//			new Effect.SwitchOff('ul-top-5');
			$('ul-top-5').hide ();
			line.hide();
			top5.hide();
			menu2.className = 'with-bottom-border';
		}else{
			top5.show();
			new Effect.BlindDown('ul-top-5');

			if ($('first-li-top-5').hasClassName('unloaded')) {
				new Ajax.Request('/index/top5', {
					method: 'POST',
					onSuccess: function(transport){
						var response = transport.responseText || 'Response Alert';
						$('ul-top-5').update(response);
					},
					onFailure: function(){
						alert('Failure');
					}
				});
			}
			line.show();
			menu2.className = 'no-bottom-border';

		}
	},

	getMovie: function(movieName) {
			if (navigator.appName.indexOf("Microsoft") != -1) {
					return window[movieName]
			}
			else {
					return document[movieName]
			}
	},

	menuResize: function(h){
		if (h > 232){
			$('menu2-flash').setStyle({height: parseInt(h) + 'px'});
			$('menu2-flash-swf').setStyle({height: parseInt(h) + 'px'});
		}else{
			$('menu2-flash').setStyle({height: '232px'});
			$('menu2-flash-swf').setStyle({height: '228px'});
		}
	},

	closeMainMenu: function(){

		var links = $$('div.submenu');

		for (var i = 0; i < links.length; i++ ){
				links[i].hide();
		}

		$('submenu-out').hide();
	},


	delFromBox: function(id, kod, kontrakt){

		new Ajax.Request('/porownywarka/del', {
			method: 'GET',
			parameters: {
				tow_kod: kod,
				kontrakt: kontrakt
			},
			onSuccess: function(transport){
				var response = (transport.responseText.evalJSON ());

				$('box_porownywarka').update(response.LIST);
//				$('box_porownywarka').innerHTML = response.LIST;
				$(id).className = 'link-compare-off';
			},
			onFailure: function(){
				alert('Failure');
			}
		});
	},


  	setCompare: function(id, kod, kontrakt){

		var link = $(id);
		var className = new String(link.classNames());

		if (className.indexOf('-on') > 0){

			new Ajax.Request('/porownywarka/del', {
				method: 'GET',
				parameters: {
					tow_kod: kod,
					kontrakt: kontrakt
				},
				onSuccess: function(transport){
					var response = (transport.responseText.evalJSON ());

					if (response.SUCCESS)
						link.className = 'link-compare-off';

					overlib('<div style="text-align:center; padding: 10px;">'+response.MSG+'</div>', FGCOLOR, '#667C94', BGCOLOR, '#00FFFF', TEXTCOLOR, '#FFFFFF',  TIMEOUT, 2000, FOLLOWMOUSE, RELX, (document.body.offsetWidth/2)-150, RELY, 50, WIDTH, 300);
					$('box_porownywarka').innerHTML = response.LIST;
//					$('box_porownywarka').update (response.LIST);

					new Effect.BlindDown('compare_items');

				},
				onFailure: function(){
					alert('Błąd połączenia z serwerem www');
				}
			});

		}else{

			new Ajax.Request('/porownywarka/add', {
				method: 'GET',
				parameters: {
					tow_kod: kod,
					kontrakt: kontrakt
				},
				onSuccess: function(transport){
					var response = (transport.responseText.evalJSON ());

					if (response.SUCCESS)
						link.className = 'link-compare-on';

					overlib('<div style="text-align:center; padding: 10px;">'+response.MSG+'</div>', FGCOLOR, '#667C94', BGCOLOR, '#00FFFF', TEXTCOLOR, '#FFFFFF',  TIMEOUT, 2000, FOLLOWMOUSE, WIDTH, 300, RELX, (document.body.offsetWidth/2)-150, RELY, 50, CELLPAD, 1);

					$('box_porownywarka').innerHTML = response.LIST;
					new Effect.BlindDown('compare_items');

				},
				onFailure: function(){
					alert('Błąd połączenia z serwerem www');
				}
			});
		}
	},
		
	setArea: function (area, flash) {
		this.getMovie(flash).callSetArea(area);
	},
	
	setShops: function (city, setcities) {
		this.setcities = typeof setcities === 'undefined' ? true : setcities;
		this.setKrok('shop', city);
	},
	
	setCities: function (area) {

		if (this.setcities)
			this.setKrok('city', area);
		else
			this.setcities = true;
	},
	
	setKrok: function(krok, value){

		var vCtrlName = $('controller_name').innerHTML;
		var vA_Powrot = '/sklepy';
		var vUslugaId = $('usluga_id').innerHTML;
		
		if (vCtrlName == 'uslugi') {
			if (krok == 'shop') {
				redirect('uslugi/details/serviceid/' + vUslugaId + '/city/' + value);
				return;
			}					
			vA_Powrot = '/uslugi/cennik/id/' + vUslugaId;
		}
		
		new Ajax.Request('/'+vCtrlName+'/list', {
			method: 'GET',
			parameters: {
				krok: krok,
				value: value,
				usluga_id: vUslugaId
			},
			onSuccess: function(transport){
				var response = (transport.responseText.evalJSON ());
				var vImg = $('img_path').innerHTML + '/label_' + krok + '_list.gif';
				$('krok_img').writeAttribute('src', vImg);
				$('krok_list').innerHTML = response.LIST;
				$('a_powrot').writeAttribute('href', vA_Powrot);
			},
			onFailure: function(){
				alert('Błąd połączenia z serwerem www');
			}
		});
		
	},

	back2Map: function () {
		this.setKrok('area', null);		
	},
	
	goDetailsContent: function (pUslugaId, pCity, pToPage) {
		
		var act_marked_usluga = this.marked_usluga_id;
		
		new Ajax.Request('/uslugi/shopsandservices', {
			method: 'GET',
			parameters: {
				serviceid: pUslugaId,
				city: pCity,
				to_page: pToPage
			},
			onSuccess: (function(transport){
				var response = (transport.responseText.evalJSON ());
				$('shops_and_services').innerHTML = response.LIST;
				
				if (typeof act_marked_usluga == 'string') {
					
					if (act_marked_usluga != pUslugaId) {
						this.changePiktogram.bind()('main', pUslugaId, 'jpg');
						this.changePiktogram('main_z', act_marked_usluga, 'jpg');
					}					
				}
				this.marked_element = null;
			}).bind(this),
			onFailure: function(){
				alert('Błąd połączenia z serwerem www');
			}
		});
	},	
	
	toggleCennik: function(pElemId) {
		$(pElemId).toggle();
	},
	
	showServiceDescription: function(element, oferta_id){
				
		if (!$(element).next(0).visible()) {
			
			var vImgPathUslugi = $('img_path').innerHTML + '/uslugi/'
			var piktoInfo = element.split('_');

			if (typeof this.marked_usluga_id == 'string') {
				
				if (this.marked_usluga_id != piktoInfo[1]) { // jezeli zmieniono usluge ktorys raz z rzedu
					
					this.changePiktogram('main', this.marked_usluga_id, 'jpg');
					this.changePiktogram('main_z', piktoInfo[1], 'jpg');
				}				
				
			} else {	// pierwszy raz zmieniono usluge	
					
				var uslugaIdStart = $('usluga_id').innerHTML;
				
				this.changePiktogram('main', uslugaIdStart, 'jpg');
				this.changePiktogram('main_z', piktoInfo[1], 'jpg');
			}
						
			// zmiana obrazka w naglowku
			$('img_usluga').writeAttribute('src', vImgPathUslugi + piktoInfo[1] + '.gif');
			
			$(element).up().className = 'ul-services-li-z';
			$(element).next(0).show();

			if (this.marked_element != element) {
				
				new Ajax.Request('/uslugi/content', {
					method: 'GET',
					parameters: {
						oferta_id: oferta_id,
						usluga_id: piktoInfo[1]
					},
					onSuccess: function(transport){
						var response = (transport.responseText.evalJSON());
						$('service_content_' + element).innerHTML = response.CONTENT;
					},
					onFailure: function(){
						alert('Błąd połączenia z serwerem www');
					}
				});
			}
			
			// ustawienie zaznaczonej uslugi
			this.marked_element = element;
			this.marked_usluga_id = piktoInfo[1];			
		}
		else {
			$(element).next(0).hide();
			$(element).up().className = 'ul-services-li';
		}
	},
	
	changePiktogram: function (prefix, usluga_id, typ) {
		
		var vImgPathUslugi = $('img_path').innerHTML + '/uslugi/'
					
		$$('.img_'+usluga_id).each(function (item) {
			item.src = vImgPathUslugi + prefix + '_' + usluga_id + '.' + typ;
		});	
	}
	
}

objCommon = new Common();