/* 
 * @author davis caics
 */
global_site_loaded = false;//true if document has loaded
global_clicked_head = null;//level 1 menu item, just clicked
global_clicked_link = null;//any level menu item just clicked
global_clicked_link_level = 0;//level for just clicked link
global_previous_head = null;//level 1 menu item previously clicked
global_previous_link = null;//any level menu item previously clicked
global_preload_images = new Array();
global_preload_images_loaded = 0;

function setMenuGlobals(clicked_link)
{
	global_clicked_link_level = $(clicked_link).hasClass("menu_head")//level 3 also has old_style_1 class, cannot rely on it
		? '1' 
		: ($(clicked_link).hasClass("old_style_2") || $(clicked_link).hasClass("old_style_2_v"))
			? '2'
			: '3';
	//set global_.._head vars if level=1
	if(global_clicked_link_level==1)
	{
		global_previous_head = global_clicked_head;
		global_clicked_head = clicked_link;
	}
	global_previous_link = global_clicked_link; //save previous link
	global_clicked_link = clicked_link; //set link to new value
}
//fnc used when clicked on 1st menu level
function closeMenu( clicked_link )
{
	setMenuGlobals(clicked_link);
	//if clicked the same 1st level menu item twice, ignore it & exit fnc
	if(global_previous_link==global_clicked_link){
		return false;
	}
	dehighlightActiveMenu();

	if($(global_previous_head) && $(global_previous_head).is('a.menu_head'))
	{
		$(global_previous_head).next().animate({ opacity: 0}).animate({height:"1"},{duration: 1000, complete: function(){
			openMenu();
		}});
	}
	else
	{
		openMenu();
	}
	return false;
}
//fnc used when clicked on 1st menu level
function closeMenuLevel2( clicked_link )
{
	setMenuGlobals(clicked_link);
	dehighlightActiveMenu();

	highlightActiveMenu();

	loadContent();
	return false;
}
function openMenu()
{
	loadContent();
	
	//open new menu item
	if ($(global_clicked_head) && $(global_clicked_head).is('a.menu_head')) 
	{
		$(global_clicked_head).next().animate({height:"150"}, 1000).animate({ opacity: 1}, {complete:function(){
			highlightActiveMenu();
		}});//slideDown(600);//menu_speed
		//$(global_previous_head).next().css({'display':'none'});
	}
	//--
	
	return false; 
}

//fnc de-highlights previous active items
function dehighlightActiveMenu()
{
	$('.old_style_1_v').removeClass('old_style_1_v').addClass('old_style_1');
	$('.old_style_2_v').removeClass('old_style_2_v').addClass('old_style_2');
}
//fnc highlights menu item just clicked. 
function highlightActiveMenu()
{
	switch(global_clicked_link_level)
	{
		//case '1':
		case '3':
			$(global_clicked_link).removeClass('old_style_1').addClass('old_style_1_v');
			break;
		case '2':
			$(global_clicked_link).removeClass('old_style_2').addClass('old_style_2_v');
			break;
	}
}

//load content with ajax
function loadContent()
{
	var ajax_href = global_clicked_link.href.replace(/(\/\?)|(\/index\.php\?)/,'/index_ajax.php?');
	var sectors = [ '10','11','21', '5' ];

	if(global_clicked_link_level!='3'){sectors.push('4');}
	for(sector_i in sectors)
	{
		sector = sectors[sector_i];
		if($('#sector'+sector).length)
		{
			$('#sector'+sector).hide();
		}
	}
	$('#loading').show();

	$.ajax({
		url : ajax_href,
		dataType : 'json',
		success : function(data){
			global_preload_images = new Array();
			//global_preload_images_loaded = 0;
			var sectors = [ '4','10','11','21', '5' ];//'3',,'5'
			var sector = 0;
			for(sector_i in sectors)
			{
				sector = sectors[sector_i];
				if($('#sector'+sector).length)
				{
					var sector = sector;
					var sector_content = '';
					eval('sector_content = data.sector'+sector);
					//console.info(sector+': sector_content = '+sector_content);
					//load html into #sectorX
						$('#sector'+sector).html(sector_content);
						//preload images
							$('#sector'+sector+' img').each(function(i,elem)
							{
								global_preload_images.push(elem.src);
							});
//							//find images in sector
//							images = regex_img.exec(sector_content)
//							for(i in images)
//							{
//							}
						//load html
					//--
					//if(sector=='11'){alert('sector content:'+sector_content);}

					//search for "/*jsflash:e*/" in loaded content. if present, then there's flash
					//$.html() function wont write <script> tags to the page so execute js seperately
				}
			}
			if(global_preload_images.length==0)
			{
				showSectors();
			}
			else{
				var oPreloader = new ImagePreloader(global_preload_images, showSectors);
			}
		},
		error : function(xmlhr, textStatus, errorThrown ){ 
			alert('error loading content');
		}
	});

}

//preload function for content loading with ajax. uses global_preload_images array
/*
 * 
function preloadImages()
{
	return false;
//	//var images = new Array();
//	for(i=0; i<global_preload_images.length; i++)
//	{
//		eval('objImage'+i+' = new Image()');
//		eval('objImage'+i+'.onLoad = preloadImagesLoaded();');
//		eval('objImage'+i+'.onError = preloadImagesLoaded();');
//		eval('objImage'+i+'.onAbort = preloadImagesLoaded();');
//		eval('objImage'+i+'.src=global_preload_images[i];');
//		eval('objImage'+i+'.src=global_preload_images[i];');
//	}
	
}

function preloadImagesLoaded(){
	return false;
//	global_preload_images_loaded ++;
//	
//	if(global_preload_images_loaded==global_preload_images.length)
//	{
//		showSectors();
//	}//if
}
*/

function showSectors()
{
	$('#loading').hide();
	var sectors = [ '4','10','11','21', '5' ];//'3',,'5'
	var sector = 0;
	for (sector_i in sectors) 
	{
		sector = sectors[sector_i];
	
		if ($('#sector' + sector).length) 
		{
			var sector_content = $('#sector' + sector).html();
			var js_content = sector_content.between('/*jsflash:s*/', '/*jsflash:e*/');
			if (js_content != '') {
				//execute swfobject funtion, use params from js_content
				eval(js_content);
			}
			
			if (sector_content != '' && sector_content != 'undefined' && sector_content != '&nbsp;') {
				$('#sector' + sector).show();
			}
		}//if
	}//for
}

//sho izmanto flash
function loadProductEntry(url)
{
	var sector = 10;
	if(arguments.length>1)
	{
		sector = arguments[1];
	}
	var ajax_href = url.replace(/(index\.php\?)|(\?)/,'index_ajax.php?');

	if ($('#sector' + sector).length) {
		$('#sector' + sector).hide();
	}
	$('#loading').show();

	$.ajax({
		url : ajax_href,
		dataType : 'json',
		success : function(data){
			global_preload_images = new Array();
			if($('#sector'+sector).length)
			{
				var sector_content = '';
				eval("sector_content = data.sector"+sector);
				$('#sector'+sector).html(sector_content);
				$('#sector'+sector+' img').each(function(i,elem)
				{
					global_preload_images.push(elem.src);
				});
				if(global_preload_images.length==0)
				{
					showProductEntrySectors();
				}
				else{
					var oPreloader = new ImagePreloader(global_preload_images, showProductEntrySectors);
				}
			}
		},
		error : function(xmlhr, textStatus, errorThrown ){ 
			alert('error loading content');
		}
	});
}

function showProductEntrySectors()
{
	var sector=10;
	$('#loading').hide();
	var sector_content = $('#sector'+sector).html();
	if(sector_content!='' && sector_content!= 'undefined' && sector_content!= '&nbsp;')
	{
		$('#sector'+sector).show();
	}

//hard-coded quick solution::::
	var sector=11;
	$('#loading').hide();
	var sector_content = $('#sector'+sector).html();
	if(sector_content!='' && sector_content!= 'undefined' && sector_content!= '&nbsp;')
	{
		$('#sector'+sector).show();
	}
//--

	return false;
}


//add a useful method to string class to retrieve strings between 2 delimiters
	String.prototype.between = function(prefix, suffix){
	    s = this;
	    var i = s.indexOf(prefix);
	    if (i >= 0) {
	        s = s.substring(i + prefix.length);
	    }
	    else {
	        return '';
	    }
	    if (suffix) {
	        i = s.indexOf(suffix);
	        if (i >= 0) {
	            s = s.substring(0, i);
	        }
	        else {
	            return '';
	        }
	    }
	    return s;
	}
//--

/*COMFORM FUNCTIONS*/
function checkFileType(object, allowed_types){
    /*return true;*/
    if (object.value == '') {
        return true;
    }
    if (isTypeAllowed(object, allowed_types) == false) {
        alert('Faila tips nav atļauts. Atļautie tipi: ' + allowed_types);
        object.value = '';
        return false;
    }
    else 
        return true;
}

function isTypeAllowed(object, allowed_types){
    var this_file_type = object.value.substring(object.value.lastIndexOf('.') + 1);
    
    
    var allow_types = allowed_types.split(',');
    var deny_types = new Array("exe", "php");
    
    if (allowed_types == '') {
        /*pÄ�rbaudam, vai nav padots kÄ�ds aizliegtrais failu tips*/
        var check = true;
        for (i = 0; i < deny_types.length; ++i) {
            if (deny_types[i] == this_file_type) {
                check = false;
            }
        }
    }
    else {
        /*pÄ�rbaudam, vai ir padots atÄ¼autais tips*/
        check = false;
        for (i = 0; i < allow_types.length; ++i) {
            if (allow_types[i] == this_file_type) {
                check = true;
            }
        }
    }
    return check;
}
/*end:COMFORM FUNCTIONS*/

/*REGFORM FUNCTIONS*/
function submitRegForm(form)
{
	$('.reg_error').hide();
	form=$(form);

	var sector = 10;

	$.ajax({
		url : '_registracija/_registration.php?ajax_mode=1',
		type: 'POST',
		data: form.serializeArray(),
		dataType : 'json',
		success : function(data){
			if(data.result=='success')
			{
				$('#regform_wrap').html(data.message);
			}
			else if(data.result=='error')
			{
				if(data.reason=='validation')
				{
					$('.reg_error').html(data.message).show();
				}
			}
			else
			{
					$('.reg_error').html('KÄ¼Å«da saglabÄ�jot datus').show();
			}
//			if($('#sector'+sector).length)
//			{
//				var sector_content = '';
//				eval("sector_content = data.sector"+sector);
//				$('#sector'+sector).html(sector_content);
//				if(sector_content!='' && sector_content!= 'undefined' && sector_content!= ' ')
//				{
//					$('#sector'+sector).show();
//				}
//			}
			return false;
		},
		error : function(xmlhr, textStatus, errorThrown ){ 
			alert('error loading content');
		}
	});

	return false;	
	
}
/*end:REGFORM FUNCTIONS*/



/*IMAGE PRELOADER*/
function ImagePreloader(images, call_back)
{
   // store the call_back
   this.call_back = call_back;
 
   // initialize internal state.
   this.nLoaded = 0;
   this.nProcessed = 0;
   this.aImages = new Array;
 
   // record the number of images.
   this.nImages = images.length;
 
   // for each image, call preload()
   for ( var i = 0; i < images.length; i++ ){
      this.preload(images[i]);
   }
}

ImagePreloader.prototype.preload = function(image)
{
   // create new Image object and add to array
   var oImage = new Image;
   this.aImages.push(oImage);

   // set up event handlers for the Image object
   oImage.onload = ImagePreloader.prototype.onload;
   oImage.onerror = ImagePreloader.prototype.onerror;
   oImage.onabort = ImagePreloader.prototype.onabort;
  
   // assign pointer back to this.
   oImage.oImagePreloader = this;
   oImage.bLoaded = false;
  
   // assign the .src property of the Image object
   oImage.src = image;
}

//ONCOMPLETE
ImagePreloader.prototype.onComplete = function()
{
   this.nProcessed++;
   if ( this.nProcessed == this.nImages )
   {
      this.call_back(this.aImages, this.nLoaded);
   }
}

//ONLOAD
ImagePreloader.prototype.onload = function()
{
   this.bLoaded = true;
   this.oImagePreloader.nLoaded++;
   this.oImagePreloader.onComplete();
}

//ONERROR
ImagePreloader.prototype.onerror = function()
{
   this.bError = true;
   this.oImagePreloader.onComplete();
}

//ONABORT
ImagePreloader.prototype.onabort = function()
{
   this.bAbort = true;
   this.oImagePreloader.onComplete();
}
/*end: IMAGE PRELOADER*/