
google.load("jquery", "1.3.2");
google.load("jqueryui", "1.7.2");

var defaultQuery	= "Egg Donation";
var maxItemCount	= 4;
var siteUrl	= ""; //"http://dev.fertilitywire.com";
var resultTpl		= "";

var currentVideoSource = ""

google.setOnLoadCallback(
	function() {
		$(document).ready(
			function() {				
				$.preloadCssImages();
				removeEmptyImages();								
				loadTemplates();			
				addListeners();
				//setDefaults();
				//stripHTML();
				//makeTwitterLinks();
			}
		);		
	}
);

function randomFeaturedImage() {

}

function loadTemplates() {
/*	$("#newsResultT").load("templates/newsResult.tpl","",handleLoadTemplate);
	$("#blogResultT").load("templates/blogResult.tpl","",handleLoadTemplate);
	$("#videoResultT").load("templates/videoResult.tpl","",handleLoadTemplate);
	$("#googleResultT").load("templates/googleResult.tpl","",handleLoadTemplate);
	$("#snapshotResultT").load("templates/snapshotResult.tpl","",handleLoadTemplate);
	$("#twitterResultT").load("templates/twitterResult.tpl","",handleLoadTemplate);		*/
}

function handleLoadTemplate(responseText, textStatus, request) {
	
}

function setDefaults() {
		$("#query").val(defaultQuery);
	$(".keyword").text(defaultQuery);	
	//$("#signup_success").css("display","none");
}

function removeEmptyImages() {
	$('img').each(function() {
		if((typeof this.naturalWidth != "undefined" &&

					this.naturalWidth == 0 ) 

					|| this.readyState == 'uninitialized' ) {

					$(this).remove();

				}
	});
}

function stripHTML() {
	//$(".snippet p").remove();
	//$(".snippet > a").remove();	
	//$(".snippet > p > a").remove();
}

function makeTwitterLinks() {
	$("#twitterResults .tweet").each(
		function(index) {
			$(this).html($(this).text().replace(/((https?|ftp):\/\/|www\.)([a-z0-9-]+\.)+[a-z0-9]+(\/[^\s<>"',;]*)?/gi,'<a href="$1">$1</a>'))
		}
	);
	//theText.replace(/(http\:\/\/[\w\.\-\?\!\&\=]+)/g,'<a href="$1">$1</a>')
}

function addListeners() {
	addVideoListeners();
	addSignupListener();
	//addValidators();
	$("#query").focus(function(e) {
		$(this).val("");
	})
	$("#fflash_email").focus(function(e) {
		$(this).val("");
	});
	$("#explore").bind("click",handleExplore);
	$("#keywords_more_link").bind("click",handleMoreKeywords);
	$("#tabs-0 .video.first.embed").trigger("click");
	$("#query").keypress(function(e) {
		if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {
			$("#explore").trigger("click");
			return false;
		} else {
			return true;
		}
	});
}

function addVideoListeners() {
	$("#tabs a").click(handleTabClick);
	
	$(".video").mouseover(function(e){
			if ($(this).hasClass("selected")) {
				return;
			}
			$(this).addClass("selected");
    	}).mouseout(function(e){
			if ($(this).hasClass("selected") && (false==$(this).hasClass("on"))) {
				$(this).removeClass("selected");
			}
		}).click(videoClicked);
}

function handleTabClick(e) {
	$($(this).attr("href") + " .video.first.embed").trigger("click");
}

function checkEmail(email) { 
    var pattern = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    var emailVal = $("#" + email).val();
    return pattern.test(emailVal);
}
  
function addSignupListener() {    
    $("#nl_signup_button").click(function() { 
        $("#signup_error").hide();
        
        // First, disable the form from submitting
        $('form#subForm').submit(function() { return false; });
        
        // Grab form action
        var formAction = $("form#subForm").attr("action");
        
        // If your form action were http://mysiteaddress.createsend.com/t/r/s/abcde/, then you'd enter "abcde" below
        var id = "uludhu";
        var emailId = id + "-" + id;
        
        // Validate email address with regex
        if (!checkEmail(emailId)) {
        
        	$("#"+emailId).keyup(function(){
            	if (!checkEmail(emailId) && $("#"+emailId).val()!='') {
                	$("#signup_error").show();
                } else {
                	$("#signup_error").hide();
                }
            });
            
            $("#signup_error").show();
            return;
        }
        
        // Serialize form values to be submitted with POST
        var str = $("form#subForm").serialize();
        
        // Add form action to end of serialized data
        // CDATA is used to avoid validation errors
        //<![CDATA[
            var serialized = str + "&action=" + formAction;
        // ]]>
        
        // Submit the form via ajax
        $.ajax({
            beforeSend: function(data){
                            $("#nl_signup_loading").show();
                        },
            url: siteUrl+"inc/cm/proxy.php",
            type: "POST",
            data: serialized,
            success: function(data){
                // Server-side validation
                if (data.search(/invalid/i) != -1) {
                    //failed
                    $("#nl_signup_loading").hide();
                    $("#signup_error").show();
                }
                else
                {
                    //success.
                    $("#nl_signup_loading").hide();
                    $("#nl_signup_form").hide(); // If successfully submitted hides the form
                    
                    $("#signup_success").slideDown("slow");  // Shows "Thanks for subscribing" div
                    $("#signup_success").tabIndex = -1;
                    $("#signup_success").focus(); // For screen reader accessibility			
                    // Fire off Google Analytics fake pageview
                    //var pageTracker = _gat._getTracker("UA-XXXXX-X");
                    //pageTracker._trackPageview("/newsletter_signup");
                }
            }
        });
    });
}

function handleMoreKeywords(e) {
	e.preventDefault();
    
	if ("22px" == $("#keywords").css("height")) {
		$("#keywords").animate( { height: "72px" } );        
	} else {
		$("#keywords").animate( { height: "22px" } );
        $("#hd").animate( { height: "100%" } );
	}
	$("#keywords_more_link").html(("22px" == $("#keywords").css("height") ? "Less &laquo;" : "More &raquo;"));	
	//$("#keywords").css("height",("auto" == $("#keywords").css("height") ? "22px" : "auto"));
	//$("#keywords_more_link").html(("auto" == $("#keywords").css("height") ? "Less &laquo;" : "More &raquo;"));	
    
}

function videoClicked(e) {
	//e.preventDefault();	
    if(false==$(this).hasClass('.on')){ 
        $(".video,.selected,.on").removeClass("selected").removeClass("on");
        $(this).addClass("on").addClass("selected");
        $(this).parent().prev().show("normal",addVideo);
    }//return false;
}

function addVideo(e) {

	//if ($(".video.selected.on").hasClass("noembed")) document.location.href = $(".video.selected.on > input.videourl").val();	
    if ($(".video.selected.on").hasClass("noembed")){
		$(".video.selected.on").find('a').trigger('click');        
    	return false;     
    }
    
	if ($(".video.selected.on > input.embedurl").val() != '') {
      $(this).html('<object type="application/x-shockwave-flash" style="width:618px; height:354px;padding-bottom:10px;" data="'+$(".video.selected.on > input.embedurl").val()+'"><param name="movie" value="'+$(".video.selected.on > input.embedurl").val()+'" /></object> ');
    
    /* 06/15/2010
    $(this).html('<object width="425" height="355"><param name="movie" value="'+$(".video.selected.on > input.embedurl").val()+'"></param><param name="allowFullScreen" value="true"></param><param name="allowScriptAccess" value="always"></param><embed src="'+$(".video.selected.on > input.embedurl").val()+'" type="application/x-shockwave-flash" allowscriptaccess="always" width="425" height="355" allowfullscreen="true"></embed></object>');
*/
    
    
    
    /*
		$(this).html('<object width="425" height="344"><param name="movie" value="'+$(".video.selected.on > input.embedurl").val()+'"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="'+$(".video.selected.on > input.embedurl").val()+'" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>');
*/
	} else if ($(".video.selected.on > input.embedcode").val() != '') {
		$(this).html($(".video.selected.on > input.embedtag").val());
	} else {
    	alert('Sorry, there seems to have been an error.');
        return false;
    }
}

function handleExplore(e) {
	//document.location.href=window.location.pathname.toString().toLowerCase() + "?s=" + $("#query").val();
    
    var explore_value="";
    explore_value = $("#query").val().replace(/ /g, '_');
    explore_value = explore_value.replace(/-/g, '_');
    explore_value = rawurlencode(explore_value);
    explore_value = explore_value.toLowerCase();
    
    //console.log(explore_value);
    
    document.location.href="" + explore_value; 

	//getKosmixData($("#query").val());
}

function getKosmixData(search) {		
	search = typeof(search) != 'undefined' ? search : defaultQuery;
	
	resetModules();

	$.getJSON(
		"http://www.kosmix.com/api/"+search+"/News?callback=?", 
		parseResults
	);
	
	$.getJSON(
		"http://www.kosmix.com/api/"+search+"/Blogosphere?callback=?", 
		parseResults
	);
	
	$.getJSON(
		"http://www.kosmix.com/api/"+search+"/Video?callback=?", 
		parseResults
	);
	
	$.getJSON(
		"http://www.kosmix.com/api/"+search+"/Images?callback=?", 
		parseResults
	);
	
	$.getJSON(
		"http://www.kosmix.com/api/"+search+"/Web%20Search?callback=?", 
		parseResults
	);
	
	$.getJSON(
		"http://www.kosmix.com/api/"+search+"/Basics?callback=?", 
		parseResults
	);
	
	$.getJSON(
		"http://search.twitter.com/search.json?q="+search,
		parseResults
	);
}

function parseResults(data) {
	$.each(data.body,function(index,item) {
		$("#debug").append(index);
		//$("#debug").append(dump(item.name));
		if (item.name.indexOf("news")>=0) {
			$("#debug").append(item.name);
		}
	});
	/*
	$.each(
		data.body,
		function(index, item) {	
			if (item.name.indexOf("news")) {
				$("#debug").append(dump(item));
			} else if (item.name.indexOf("blogosphere")) {

			} else if (item.name.indexOf("images")) {

			} else if (item.name.indexOf("web_search")) {

			} else if (item.name.indexOf("basics")) {

			}
		}
	);
	*/
}
/*
function parseTopicRoot(data) {		
	dump(data);
	$.each(
		data.body, 
		parseTopicItems
	);
}

function resetModules() {
	$("#featured .bd").empty();
	$("#featured .image img").remove();
	$("#newsResults .bd").empty();
	$("#blogResults .bd").empty();
	$("#videoResults .bd").empty();	
	$("#googleResults .bd").empty();
	$("#snapshotResults .bd").empty();
	$("#twitterResults .bd").empty();
	$("#imageResults .bd").empty();
	$(".keyword").text($("#query").val());
}

function parseTopicItems(i,item) {
	if (item.name != "empty_div"
		&& item.name != "sponsored_results" 
		&& item.name != "ads_google_r1_adore"
		&& item.name != ""
		&& item.name != null) {
		
		//$("<div/>").html(dump(item)).appendTo("#available_modules");	
	}
	
	switch (item.name) {
		case "google_websearch_api_3":
			$("#googlesearch_title").text("Google Search Results");
			$.each(
				item.results,
				parseGoogleSearchResults
			)
		break;
		case "twitter_json":
			$("#twitter_title").text("Tweets");
			$.each(
				item.results,
				parseTwitterPosts
			)
		break;
		case "modulesuper":
			$.each(
				item.results,
				parseTopicItemResults
			);
		break;
		case "images": 
			$.each(
				item.modules,
				parseImageModule
			);
		break;
	}
}

function parseGoogleSearchResults(i, result) {
	if (i > maxItemCount) {
		return false;
	}
	//alert(result.url);
	$("#googleResultT > .item").clone().appendTo($("#googleResults > .bd"));
	$("#googleResults > .bd > .item:last > .title > a").attr("href",result.url).html(result.title);
	$("#googleResults > .bd > .item:last > .snippet").html(result.snippet);
	//$("#googlesearch_body").append($("<div/>").append($("<a></a>").html(result.title).attr("href",result.url).attr("target","_blank")));
	//$("#googlesearch_body").append($("<p/>").html(result.snippet))
}

function parseTwitterPosts(i, post) {
	if (i > maxItemCount) {
		return false;
	}
	$("#twitter_body").append(
		$("<div/>").append(
			$("<img/>").attr(
				"src",post.image
			).addClass("twitterAvatarIcon")
		).append(
			$("<span/>").html(post.tweet)
		)
	);
}

function parseTwitterModule() {
	
}

function parseNewsBlogsModule() {
	
}

function parseConversationsModule() {
	
}

function parseImageModule(i, module) {
	switch (module.name) {
		case "google_imagesearch":
			parseGoogleImageModule(module);
		break;
		case "image_flck_image":
			parseFlickrImageModule(module);
		break;
	}
}

function parseTopicItemResults(i,result) {
	switch (result.name) {
		case "wiki":
			parseWiki(result);
		break;
	}
}

function parseWiki(result) {
	$("#wikipedia_title").text("At a Glance");
	$("#wikipedia_body").html(result.snippet);
}

function parseGoogleImageModule(module) {
	$("#googleimagesearch_title").text("Google Images");
	$.each(
		module.results,
		parseGoogleImageResult
	) 
}

function parseFlickrImageModule(module) {
	$("#flickrimagesearch_title").text("Flickr Images");
	$.each(
		module.results,
		parseFlickrImageResult
	)
}

function parseGoogleImageResult(i,result) {
	if (i > maxItemCount) {
		return false;
	}
	
	$("<img/>").attr("src", result["thumbnail-url"]).appendTo("#google_images");
}

function parseFlickrImageResult(i,result) {
	if (i > maxItemCount) {
		return false;
	}
	
	$("<img/>").attr("src", result["thumbnail-url"]).appendTo("#flickr_images");
}

*/

function urlencode (str) {
    // http://kevin.vanzonneveld.net
    // +   original by: Philip Peterson
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: AJ
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: travc
    // +      input by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Lars Fischer
    // +      input by: Ratheous
    // +      reimplemented by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Joris
    // +      reimplemented by: Brett Zamir (http://brett-zamir.me)
    // %          note 1: This reflects PHP 5.3/6.0+ behavior
    // %        note 2: Please be aware that this function expects to encode into UTF-8 encoded strings, as found on
    // %        note 2: pages served as UTF-8
    // *     example 1: urlencode('Kevin van Zonneveld!');
    // *     returns 1: 'Kevin+van+Zonneveld%21'
    // *     example 2: urlencode('http://kevin.vanzonneveld.net/');
    // *     returns 2: 'http%3A%2F%2Fkevin.vanzonneveld.net%2F'
    // *     example 3: urlencode('http://www.google.nl/search?q=php.js&ie=utf-8&oe=utf-8&aq=t&rls=com.ubuntu:en-US:unofficial&client=firefox-a');
    // *     returns 3: 'http%3A%2F%2Fwww.google.nl%2Fsearch%3Fq%3Dphp.js%26ie%3Dutf-8%26oe%3Dutf-8%26aq%3Dt%26rls%3Dcom.ubuntu%3Aen-US%3Aunofficial%26client%3Dfirefox-a'

    str = (str+'').toString();
    
    // Tilde should be allowed unescaped in future versions of PHP (as reflected below), but if you want to reflect current
    // PHP behavior, you would need to add ".replace(/~/g, '%7E');" to the following.
    return encodeURIComponent(str).replace(/!/g, '%21').replace(/'/g, '%27').replace(/\(/g, '%28').
                                                                    replace(/\)/g, '%29').replace(/\*/g, '%2A').replace(/%20/g, '+');
}

function rawurlencode (str) {
    // URL-encodes string  
    // 
    // version: 1006.1915
    // discuss at: http://phpjs.org/functions/rawurlencode    // +   original by: Brett Zamir (http://brett-zamir.me)
    // +      input by: travc
    // +      input by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: Michael Grier    // +   bugfixed by: Brett Zamir (http://brett-zamir.me)
    // +      input by: Ratheous
    // +      reimplemented by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Joris
    // +      reimplemented by: Brett Zamir (http://brett-zamir.me)    // %          note 1: This reflects PHP 5.3/6.0+ behavior
    // %        note 2: Please be aware that this function expects to encode into UTF-8 encoded strings, as found on
    // %        note 2: pages served as UTF-8
    // *     example 1: rawurlencode('Kevin van Zonneveld!');
    // *     returns 1: 'Kevin%20van%20Zonneveld%21'    // *     example 2: rawurlencode('http://kevin.vanzonneveld.net/');
    // *     returns 2: 'http%3A%2F%2Fkevin.vanzonneveld.net%2F'
    // *     example 3: rawurlencode('http://www.google.nl/search?q=php.js&ie=utf-8&oe=utf-8&aq=t&rls=com.ubuntu:en-US:unofficial&client=firefox-a');
    // *     returns 3: 'http%3A%2F%2Fwww.google.nl%2Fsearch%3Fq%3Dphp.js%26ie%3Dutf-8%26oe%3Dutf-8%26aq%3Dt%26rls%3Dcom.ubuntu%3Aen-US%3Aunofficial%26client%3Dfirefox-a'
    str = (str+'').toString(); 
    // Tilde should be allowed unescaped in future versions of PHP (as reflected below), but if you want to reflect current
    // PHP behavior, you would need to add ".replace(/~/g, '%7E');" to the following.
    return encodeURIComponent(str).replace(/!/g, '%21').replace(/'/g, '%27').replace(/\(/g, '%28').
                                                                    replace(/\)/g, '%29').replace(/\*/g, '%2A');}