var menuTimeouts = new Array();
function ShowMenu(id) {
	clearTimeout(menuTimeouts[id]);
	jQuery(".expanded_menu:not(#" + id + ")").hide();
	menuTimeouts[id] = setTimeout("jQuery('#"+id+"').fadeIn();", 200);	
}
function HideMenu(id) {
	clearTimeout(menuTimeouts[id]);
	menuTimeouts[id] = setTimeout("HideMenuAfterDelay('" + id + "')", 500);	
}
function HideMenuAfterDelay(id) {
	clearTimeout(menuTimeouts[id]);
	jQuery("#" + id +":visible").fadeOut();
}

function MarkerFlyAnimation(from) {
	var cloned = jQuery(from).clone();
    cloned.css({position: 'absolute', opacity: 0.5, top: jQuery(from).offset().top, left: jQuery(from).offset().left});
    jQuery(from).before(cloned);
    cloned.animate({ 
        opacity: 0.05,
        top: jQuery("#myMarked").offset().top,
        left: jQuery("#myMarked").offset().left
      }, 600 , "", function(){jQuery(this).remove()});
      

}


function Call(c, m, p, cb, errcb) {            
    jQuery.ajax({
        type: "POST",
        url: "ajax.php",
        dataType: "json",
        data: ({c: c, m: m, p: JSON.stringify(p, function (key, value) { return value; })}),
        success: function(json) {
            cb(json);
        },
        error: function(msg) {
            if (errcb != undefined && errcb != null)
            	errcb(msg);
        }
    });
}

var MiniRegister = {
	Register: function() {
	    var value = jQuery("#miniRegisterInput").val();
	    if (value == null || value == undefined) return;	    
	    var result = value.match(/^\+?[\d\s]*$/);
	    if (result != null && value.length >=6) {
	        Call("MiniRegisterApi", "Register", value, function(result) {
	            switch(result.status) {
	                case 0:
	                    jQuery(".MiniRegister .registerFrame").hide();
	                    jQuery(".MiniRegister .success").show();
	                    jQuery(".MiniRegister .success .number").html(value);
	                    break;
	                case 1:
	                    alert('Registracija šiuo telefono numeriu jau įvykdyta');
	                    break;
	                case 2:
	                	alert("Prašome nurodyti teisingą telefono numerį");
	                	break;
	                default:
	                    alert('Įvyko klaida, bandykite vėliau dar kartą');
	                    break;
	            }
	        });
	    }
	    else {
	        alert("Prašome nurodyti teisingą telefono numerį");
	    }
	},
	MarkAsOld: function(id) {
		Call("MiniRegisterApi", "MarkAsOld", id, function(result) {
		    switch(result.status) {
			case 0:
				jQuery(".CatalogRegistration." + id + " td").removeClass("strong");
				jQuery(".CatalogRegistration." + id + " td.contact").html("");
				break;
			case 1:
				alert('Klaida. Registracija nerasta?');
				break;
			default:
				alert('Nezinoma klaida');
				break;
		    }
		});
	},
	Comment: function(id, comment) {
		var data = {id: id, comment: comment };
		Call("MiniRegisterApi", "Comment", data, function(result) {
		    switch(result.status) {
			case 0:
				jQuery(".CatalogRegistration .comment." + id + " .editComment").val(comment);
				jQuery(".CatalogRegistration .comment." + id + " .originalComment").val(comment);
				jQuery(".CatalogRegistration .comment." + id + " .buttonFrame").hide();
				jQuery(".CatalogRegistration .comment." + id + " .editComment").removeClass('selected');
				break;
			case 1:
				alert('Klaida. Registracija nerasta?');
				break;
			default:
				alert('Nezinoma klaida');
				break;
		    }
		});
	}
};
var MiniRecommend = {
	Recommend: function() {
	    var value = jQuery("#miniRecommendInput").val();
	    if (value == null || value == undefined) return;	    
	    var result = value.match(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/);
	    if (result != null && value.length > 2) {
	        Call("MiniRecommendApi", "Recommend", value, function(result) {
	            switch(result.status) {
	                case 0:
	                    jQuery(".MiniRecommend .recommendFrame").hide();
	                    jQuery(".MiniRecommend .success").show();
	                    break;
	                case 1:
	                    alert('Šiam draugui portalas jau rekomenduotas');
	                    break;
	                case 2:
	                	alert("Prašome nurodyti teisingą el.pašto adresą");
	                	break;
	                default:
	                    alert('Įvyko klaida, bandykite vėliau dar kartą');
	                    break;
	            }
	        });
	    }
	    else {
	        alert("Prašome nurodyti teisingą el.pašto adresą");
	    }
	},
	SelectAll: function() {
		jQuery(".FriendRecommendation input").attr('checked', true);
	},
	SelectNew: function() {
		MiniRecommend.ClearSelection();
		jQuery(".FriendRecommendation.new input").attr('checked', true);
	},
	ClearSelection: function() {
		jQuery(".FriendRecommendation input").attr('checked', false);
	},
	GenerateAddress: function() {
		var items = jQuery(".FriendRecommendation input:checked");
		var result = '';
		for(var i=0;i<items.length;i++) {
			if (i > 0) { 
				result += ', ';
			}
			result += jQuery(".FriendRecommendation." + items[i].value + " td.email").html();
		}
		
		jQuery("#generatedEmailAddress").html(result).show();
	},
	MarkAsOld: function(id) {
		Call("MiniRecommendApi", "MarkAsOld", id, function(result) {
		    switch(result.status) {
			case 0:
				jQuery(".FriendRecommendation." + id + " td").removeClass("strong");
				jQuery(".FriendRecommendation." + id + " td.contact").html("");
				break;
			case 1:
				alert('Klaida. Registracija nerasta?');
				break;
			default:
				alert('Nezinoma klaida');
				break;
		    }
		});
	}
};
var Markers = {
	Add: function(id) {
		Call("MarkApi", "Add", id, function(result) {
			switch(result.status) {
				case 0:
					// Success
				break;
	            case 1:
	            	var currMarked = jQuery.cookie("marked");
	            	if (currMarked == null)
	            		currMarked = id;
	            	else
	            		currMarked += "," + id;
	            	jQuery.cookie("marked", currMarked,  { expires: 365, path: '/' });
            	break;
	            case 2:
	            	alert('Įvyko klaida žymint nurodytą įmonę');
            	break;
	            case 3:
	            	//alert('Šią įmonę Jūs jau pažymėjote');
            	break;
	            default:
	                alert('Įvyko klaida, bandykite vėliau dar kartą');
	                break;
			}
		});
	}, 
	Remove: function(id) {
		if (confirm("Ar tikrai?")) {
			Call("MarkApi", "Remove", id, function(result) {
				switch(result.status) {
					case 0:
						jQuery("table.MarkedTable .item." + id).fadeOut();
						jQuery("table.MarkedTable .yourComment." + id).fadeOut();
						jQuery("table.MarkedTable .comment." + id).fadeOut();
					break;
		            case 1:	// Not logged in, removing from cookie.
	            		var currMarked = jQuery.cookie("marked");
	            		if (currMarked != null) {
	            			var array = currMarked.split(',');
	            			for(var i=0;i<array.length;i++) {
	            				if (array[i] == id) {
	            					array = array.slice(0,i).concat( array.slice(i+1)  );
	            					i--;
	            				}
	            			}
	            			currMarked = array.join(',');
	            			jQuery.cookie("marked", currMarked,  { expires: 365, path: '/' });
	            		}
						jQuery("table.MarkedTable .item." + id).fadeOut();
						jQuery("table.MarkedTable .yourComment." + id).fadeOut();
						jQuery("table.MarkedTable .comment." + id).fadeOut();
	            	break;
		            case 2:
		            	// Happens when removing already removed (or not belonging to user item)
	            	break;
		            default:
		                alert('Įvyko klaida, bandykite vėliau dar kartą');
		                break;
				}
			});
		}
	},
	ToggleCommentInput: function(itemId) {
		jQuery(".MarkedTable .comment." + itemId).toggle();
	},
	FocusComment: function(id) {
		jQuery(".MarkedTable .comment." + id + " .acceptButton").show();
		if (!jQuery(".MarkedTable .comment." + id).hasClass("indb")) {
			jQuery(".MarkedTable .comment." + result.data[i].itemId + " .acceptButton").hide();
		}
	},
	BlurComment: function(id) {
		
	},
	SaveComment: function(id) {
		var data = { itemId: id, comment: jQuery(".MarkedTable .comment." + id + " input").val() };
		Call("MarkApi", "SaveComment", data, function(result) {
			switch(result.status) {
				case 0:
					jQuery(".MarkedTable .comment." + id).addClass("indb");
				break;
	            case 1:
	            	var currMarked = jQuery.cookie("marked");
	            	if (currMarked == null)
	            		currMarked = id;
	            	else
	            		currMarked += "," + id;
	            	jQuery.cookie("marked", currMarked,  { expires: 365, path: '/' });
            	break;
	            case 2:
	            	alert('Įvyko klaida žymint nurodytą įmonę');
            	break;
	            case 3:
	            	//alert('Šią įmonę Jūs jau pažymėjote');
            	break;
	            default:
	                alert('Įvyko klaida, bandykite vėliau dar kartą');
	                break;
			}
			jQuery(".MarkedTable .comment." + id + " input").removeClass("loading");
			jQuery(".MarkedTable .comment." + id + " .acceptButton").hide();
		});
	},
	LoadComments: function() {
		Call("MarkApi", "Load", null, function(result) {
			switch(result.status) {
				case 0:
					for(i=0;i<result.data.length;i++) {
						if (result.data[i].comment != null && result.data[i].comment.length > 0)
						{
							jQuery(".MarkedTable .comment." + result.data[i].itemId).addClass("indb");
							jQuery(".MarkedTable .comment." + result.data[i].itemId + " input").val(result.data[i].comment);
							jQuery(".MarkedTable .comment." + result.data[i].itemId + " .acceptButton").hide();
							jQuery(".MarkedTable .comment." + result.data[i].itemId).show();
						}
					}
				break;
	            case 1:
	            	//alert('Jūs esat neprisijungę. Komentarus gali saugoti tik prisijungę vartotojai.');
            	break;
	            default:
	                // Error, Unkown code
	                break;
			}
		});
		jQuery(".MarkedTable .comment").removeClass("loading");
	},
	CancelEditing: function(id) {
		jQuery(".MarkedTable .comment." + id + " .acceptButton").hide();
		if (!jQuery(".MarkedTable .comment." + id).hasClass("indb")) {
			jQuery(".MarkedTable .comment." + id).hide();
		}
	}
}
var Gallery = {
	ShowCatalogItemGallery: function(id) {
		Call("GalleryApi", "GetCatalogItemGallery", id, function(result) {
			switch(result.status) {
				case 0:
				  if(result.data != null && result.data.length > 0) {
					jQuery("body").append("<div id='dynamicLightboxLoading' style='display:none'></div>");
					for(var i=0;i<result.data.length;i++) {
						var title = result.data[i].title == null ? "&nbsp;" : result.data[i].title;
						jQuery("#dynamicLightboxLoading").append("<a rel='dynamicLighbox' title='"+title+"' href='g/originals/"+result.galleryId+"/"+result.data[i].filename+"'><img alt='' src='images/dot_line.gif'/></a>");
					}
				  }
				  jQuery("#dynamicLightboxLoading a").lightbox();
				  jQuery("#dynamicLightboxLoading a:first").click();
				  jQuery("#dynamicLightboxLoading").remove();
				break;
			}
		});
	}
}
var Comments = {
	AddFromDetails: function() {
		var name = jQuery("#articleCommentsName").val();
		var email = jQuery("#articleCommentsEmail").val();
		var text = jQuery("#articleCommentsText").val();
		var id = jQuery("#articleCommentsId").val();
		Comments.Add(name, email, text, id);
	},
	Add: function(name, email, text, articleId) {
		if (name == null || name == "") {
			alert('Prašome nurodyti vardą');
			return;
		}
		if (email == null || email == "") {
			alert('Prašome nurodyti el.paštą');
			return;
		}
		if (text == null || text == "") {
			alert('Prašome nurodyti komentarą');
			return;
		}
		if (text.length > 8000) {
			alert('Komentaras per ilgas. Galima įvesti 8000 simbolių. Jūs įvedėte ' + text.length);
			return;
		}
		var result = email.match(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/);
		if (result != null) {
			var info = {name: name, email: email, text: text, articleId: articleId};
	        Call("CommentApi", "Add", info, function(result) {
	            switch(result.status) {
	                case 0:
				jQuery("#articleCommentsText").val("");
	                	window.location.reload();
	                	break;
	                case 1:
	                	alert("Neteisingai nurodytas el.paštas, vardas ar komentaras");
	                	break;
	                case 2:
	                	alert("Atsiprašome, tačiau turi praeiti bent 30 sekundžių po to kai parašėte paskutini komentarą, kad galėtumėte išsaugoti naują. Truputi palaukite ir bandykite dar kartą.");
	                	break;
	                default:
	                    alert('Įvyko klaida, bandykite vėliau dar kartą');
	                    break;
	            }
	        });
		}
	    else {
	        alert("Prašome nurodyti teisingą el.pašto adresą");
	    }
		
	},
	Remove: function(id) {
	    if (confirm('Ar tikrai?')) {
	        Call("CommentApi", "Remove", id, function(result) {
	            switch(result.status) {
	                case 0:
				jQuery(".ArticleComment." + id).remove();
	                	break;
	                case 1:
	                	alert('Klaida. Komentaras nerastas?');
	                	break;
	                default:
	                    alert('Nezinoma klaida');
	                    break;
	            }
	        });
	    }
	},
	Approve: function(id) {
		Call("CommentApi", "Approve", id, function(result) {
		    switch(result.status) {
			case 0:
				jQuery(".ArticleComment." + id).remove();
				break;
			case 1:
				alert('Klaida. Komentaras nerastas?');
				break;
			default:
				alert('Nezinoma klaida');
				break;
		    }
		});
	}
};
function InitializeGMap(latlng) {
    if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map_canvas"));
        map.addControl(new GSmallMapControl());
        var coords_array = latlng.split(",", 2);
        var position = new GLatLng(coords_array[0], coords_array[1]);
        map.setCenter(position, 12);
        map.addOverlay(new GMarker(position));
    }
}
function onYouTubePlayerReady(playerId) {
	if (jQuery("#" + playerId).attr("skipone") == "true") {
		jQuery("#" + playerId).attr("skipone", "false")
	} else {
		document.getElementById(playerId).playVideo();
	}
}
var lastytid=0;

jQuery(document).ready(function () {
	jQuery('.youtube_video').each(function(){
            lastytid++;
            jQuery(this).before("<div id='autoytplayer" + lastytid + "'></div>");
            jQuery(this).hide();
            var skipone = jQuery(this).attr("skipone") != undefined;
            var atts = { id: "autoytplayer" + lastytid, skipone: skipone};
            swfobject.embedSWF("http://www.youtube.com/v/" + jQuery(this).attr("ytid") + "&rel=0&showinfo=0&color1=0xb1b1b1&color2=0xcfcfcf&feature=player_embedded&fs=1&enablejsapi=1&playerapiid=autoytplayer" + lastytid, "autoytplayer" + lastytid, "300", "244", "9.0.0", "expressInstall.swf", null, { allowScriptAccess: "always" }, atts);
        });
    });

function PlayTopVideo(element) {
    var speed = 400;
    // Stop all players
    var frame = jQuery(element).parent("td");
    frame.children().fadeOut(speed);
    var curr = jQuery(".TopVideos .player:visible").parent("td");
    curr.find("object").each(function(){
    	document.getElementById(jQuery(this).attr("id")).stopVideo();
	});
    curr.children(".player").fadeOut(speed, function(){
        frame.children(".player").fadeIn(speed, function() {});
        curr.children(".teaser").fadeIn(speed);
        }
    );
}
function PlayMiniVideo(element) {
    var speed = 400;
    // Stop all players
    var frame = jQuery(element).parent(".videoWrapper");
    frame.children().hide();
    var curr = jQuery(".MiniVideo .player:visible").parent(".videoWrapper");
    curr.find("object").each(function(){
		document.getElementById(jQuery(this).attr("id")).stopVideo();
	});
    if (curr.length > 0) {
    	curr.children(".player").fadeOut(speed, function(){
    		curr.children(".teaser").fadeIn(speed);
    	});
    	
    }    
	frame.children(".player").fadeIn(speed);
}
function ShowModalVideo(id, catalogItemId) {
	var modalVideoId = "modalVideo" + Math.floor(Math.random()*123456789);
	jQuery.modal("<div id='" + modalVideoId +"' class='ModalVideo'>" + GetModalVideoObject(id) + "</div>");
	
	if (catalogItemId != undefined && catalogItemId != null) {
		Call("VideoApi", "GetCatalogItemVideos", catalogItemId, function(result) {
			if (result !=null  && result != "" && result.length > 0) {
				
				relatedHTML ="";
				for(i=0;i<result.length;i++) {
					relatedHTML += "<div onclick=\"jQuery('#"+modalVideoId+" object').remove();jQuery('#"+modalVideoId+"').prepend(GetModalVideoObject('"+result[i].youtubeId+"'))\">" + result[i].title + "</div>";
				}
				
				jQuery("#" + modalVideoId).append(
					"<div class='Related'>" +
						"<div class='title'>Visi susiję video:</div>" +
						relatedHTML +
					"</div>");	
			}
		});
	}
}

function GetModalVideoObject(id) {
	return "<object width='425' height='344'><param name='movie' value='http://www.youtube.com/v/" + id + "&fs=1&autoplay=1'></param><param name='allowFullScreen' value='true'></param><param name='allowscriptaccess' value='always'></param><embed src='http://www.youtube.com/v/" + id + "&fs=1&autoplay=1' type='application/x-shockwave-flash' allowscriptaccess='always' allowfullscreen='true' width='425' height='344'></embed></object>";
}
