﻿function documentWrite(someData) {
    document.writeln(someData);
}

// Kollar om en viss plugin existerar
// nameOfPlugin (string): namnet på pluginen, t.ex: "Flip4Mac"
function pluginExists(nameOfPlugin) {
    for (var i = 0; i < navigator.plugins.length; i++){
        if (navigator.plugins[i].name.indexOf(nameOfPlugin) != -1) {
            return true;
        }
    }    
    return false;
}

function HeaderMenu(imagePath, namePrefix, hoverSuffix, activeSuffix, imageExtension, startIndex, numImages) {
    this.imageArray = [];
    this.isIE = $.browser.msie;
    var inst = this;
        
    for (img = startIndex; img < (startIndex + numImages); img++) {
        var menuObject = new Object();
        menuObject.normal = new Image();
        menuObject.normal.src = imagePath + namePrefix + String(img) + imageExtension;
        menuObject.hover = new Image();
        menuObject.hover.src = imagePath + namePrefix + String(img) + hoverSuffix + imageExtension;
        menuObject.active = new Image();
        menuObject.active.src = imagePath + namePrefix + String(img) + activeSuffix + imageExtension;        
        inst.imageArray[String(namePrefix) + String(img)] = menuObject;
    }
    
    // Byter en bild i srcImage mot en annan
    this.swapImage = function(swapTo, srcImage) {
        var menuObject = inst.imageArray[srcImage.id];        
        if  (menuObject !== null) {
            if (swapTo == "hover") {
                srcImage.src = menuObject.hover.src;
            } else if (swapTo == "active") {
                srcImage.src = menuObject.active.src;
            } else { // swapTo == "normal"
                srcImage.src = menuObject.normal.src;
            }
        }
    };
    
    this.swapActiveImage = function(eventObject) {
        inst.swapImage("active", inst.isIE ? eventObject.srcElement : eventObject.currentTarget);        
    }
    this.swapNormalImage = function(eventObject) {
        inst.swapImage("normal", inst.isIE ? eventObject.srcElement : eventObject.currentTarget);
    }
    this.swapHoverImage = function(eventObject) {
        inst.swapImage("hover", inst.isIE ? eventObject.srcElement : eventObject.currentTarget);
    }
}

function trim(input) {
    if (input) {
        return input.replace(/^\s*/, "").replace(/\s*$/, "");
    } else {
        return "";
    }
}

// Lägg till en trim funktion till String
String.prototype.trim = function () {
    return trim(this.valueOf());
}


// Jämför en sträng med en annan och returner om de är lika eller ej
// valfri andra parameter: ignoreCase (default false)
String.prototype.equals = function(other) {        
    if (this.valueOf().length != other.toString().length) {
        return false;
    }
    var a = this.toString();
    var b = other.toString();
    if (arguments.length > 1 && arguments[1]) {
        // Case insensitive
        a = a.toLowerCase();
        b = b.toLowerCase();   
    }
    
    for (var i = 0; i < a.length; i++) {
        if (a.charAt(i) != b.charAt(i)) {
            return false;
        }
    }
    
    return true;
}


function isValidEmail(input) {
    return input !== null && input.length > 0 && input.search(/^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/gi) >= 0;
}

String.prototype.isEmail = function() {
    return isValidEmail(this.valueOf());
}

// Valideringsfunktion för sökformuläret
function SearchFormValidate() {
	var noChoicesMade = "Du har inte gjort några val";
	var monthNeedsYear = "Om du väljer månad måste du också välja år";

	var yearElement = $("#Search_Year");    
	var monthElement = $("#Search_Month");
	var textElement = $("#Search_Text");
	if (yearElement !== null && monthElement !== null && textElement !== null) {
		var year = parseInt(yearElement.val(), 10);
		var month = parseInt(monthElement.val(), 10);
		
		// Månad kräver år
		if (month > 0 && year == 0) {
			alert(monthNeedsYear);
			return false;
		}
		
		// Fritext måste vara ifyll om inte månad eller år är ifyllda
		if (month == 0 && year == 0 && textElement.val().trim().length == 0) {
			alert(noChoicesMade);
			return false;
		}
		
		return true;

	} else {
		return false;
	}	
}

// Ladda huvudmenyn
var menu = null;
function loadMenu() {
   try {
       if (menu === null) {
            menu = new HeaderMenu("images/header/", "meny_", "_hover", "_aktiv", ".gif", 2, 9);
            
            // Lägg till attributen        
            for (var i = 0; i < 9; i++) {
                var imgElement = document.getElementById("meny_" + String(i + 2));
                if (imgElement !== null) {            
                    if (imgElement.src.indexOf("_aktiv") != -1) {
                        if (menu.isIE) {
                            imgElement.attachEvent("onmouseout", menu.swapActiveImage);
                        } else {
                            imgElement.addEventListener("mouseout", menu.swapActiveImage, false);
                        }
                    } else {
                        if (menu.isIE) {
                            imgElement.attachEvent("onmouseout", menu.swapNormalImage);
                        } else {
                            imgElement.addEventListener("mouseout", menu.swapNormalImage, false);
                        }
                    }
                    if (menu.isIE) {
                        imgElement.attachEvent("onmouseover", menu.swapHoverImage);
                    } else {
                        imgElement.addEventListener("mouseover", menu.swapHoverImage, false);
                    }
                }
            }
        }
    } catch (Error) { }
    
    return true;
}

function pollFormValidate() {    
    if ($("input[@type=radio][@name=QOTD_Answer][@checked]").val() !== null) {
        return true;        
    } else {   
        alert("Du har inte valt något svar!");
        return false;
    }
}

function alreadyVoted() {
    alert("Du har redan röstat på den här frågan!");
    return false;
}

function openWindow(url, width, height) {
    return window.open(url, "_blank", "directories=0,height=" + height + ",width=" + width + ",location=0,scrollbars=1,status=0,toolbar=0", true);
}

function printObject(objectId, queryKey) {
    objectId = parseInt(objectId, 10);
    if (!isNaN(objectId) && objectId > 0) {        
        window.open("Print.aspx?" + queryKey + "=" + objectId, "_blank", "directories=0,scrollbars=1,status=0,toolbar=0,width=500,height=500");
    }
}



var cbCallerElement = null;
var cbTargetElementId = null;
var cbArticleId = 0;
function cbProcessData(input) {    

    var parent = cbCallerElement.parentNode;
    if (parent !== null) {
        parent.removeChild(cbCallerElement);
    }
    
    var element = $("#" + cbTargetElementId);
    element.html(element.html() + input);    
    
    cbCallerElement = null;
    cbTargetElementId = null;
    cbArticleId = 0;
}

function getAllChildren(callerElement, targetElementId, articleId, offset) {
    cbCallerElement = callerElement;
    cbTargetElementId = targetElementId;
    cbArticleId = articleId; 
    IFK.RelatedArticles.GetAllChildren(articleId, offset, cbProcessData);        
}

function getAllPuffArticles(callerElement, targetElementId, folderId, offset) {
    cbCallerElement = callerElement;
    cbTargetElementId = targetElementId;
    cbArticleId = folderId; 
    IFK.RelatedArticles.GetAllPuffArticles(folderId, offset, cbProcessData);        
}

function flashObject(moviePath, width, height) {
    return '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="' + width + '" height="' + height + '">'+
          '<param name="movie" value="' + moviePath  + '" />'+
          '<param name="quality" value="high" />'+
          '<param name="menu" value="false" />'+
          '<param name="loop" value="true" />'+
          '<param name="wmode" value="opaque" />'+
          '<embed src="' + moviePath  + '" width="' + width + '" height="' + height + '" loop="true" wmode="opaque" quality="high" pluginspage="http://www.adobe.com/go/getflashplayer" type="application/x-shockwave-flash" menu="false"></embed>'+
        '</object>';
}

function documentWriteln(output) {
    document.writeln(output);
}

function reloadPage() {
    document.location.href = document.location.href;
}

function switchType(sender) {
    if (sender.value == "Ljud") {
        Recaptcha.switch_type("audio");
        sender.value = "Bild";
    } else {
        Recaptcha.switch_type("image");
        sender.value = "Ljud";
    }
}