/*
Funktion specifik fr omrstningar/tvlingar fr att verifiera samt
skicka omrstningar/tvlingar/rstningar
*/

function sendPoll(verifyElements, allElements, PollId, URL){
    var arrVerifyElements = verifyElements.split("|");
    var arrAllElements = allElements.split("|");
    var QAIds = new Array();
    var SendOK = true;
    var notAllAnswered = "Du måste svara på frågan...";
	
    for(var i=0;i<arrVerifyElements.length;i++){
        /*
        eftersom det ligger en pipe sist i strngen som 
        splittas fr vi ett tomt-element p sista 
        plats i arrayen, och den vill vi ju inte frga p
        */
        if(arrVerifyElements[i].length > 0){
            var obj = document.getElementById(arrVerifyElements[i]);
            if(!validateObject(obj)){
                SendOK = false;
                //notAllAnswered += "\nFrga nummer " + (i+1);
            }
        }
    }
	
    if(!SendOK){
        if(arrVerifyElements.length == 1)
            alert("Du måste svara för att kunna rösta!");
        else
            alert(notAllAnswered);
    }else{
        for(var i=0;i<arrAllElements.length;i++){
            /*
            eftersom det ligger en pipe sist i strngen som 
            splittas fr vi ett tomt-element p sista 
            plats i arrayen, och den vill vi ju inte frga p
            */
            if(arrAllElements[i].length > 0){
                var obj = document.getElementById(arrAllElements[i]);
                QAIds.push(obj.id + "|" + getValue(obj));
            }
        }
		document.getElementById("Omrostning").submit()
        //Teknomedia.EdgeII.Website.VoteService.Vote(PollId, QAIds, voteCompleted);
    }
		
}

function sendPoll2(verifyElements, allElements, PollId){
    var arrVerifyElements = verifyElements.split("|");
    var arrAllElements = allElements.split("|");
    var QAIds = new Array();
    var SendOK = true;
    var notAllAnswered = "Du måste svara på frågan...";
	alert(1);
	
    for(var i=0;i<arrVerifyElements.length;i++){
        /*
        eftersom det ligger en pipe sist i strngen som 
        splittas fr vi ett tomt-element p sista 
        plats i arrayen, och den vill vi ju inte frga p
        */
        if(arrVerifyElements[i].length > 0){
            var obj = document.getElementById(arrVerifyElements[i]);
            if(!validateObject(obj)){
                SendOK = false;
                //notAllAnswered += "\nFrga nummer " + (i+1);
            }
        }
    }
    if(!SendOK){
        if(arrVerifyElements.length == 1)
            alert("Du måste svara för att kunna rösta!");
        else
            alert(notAllAnswered);
    }else{
        for(var i=0;i<arrAllElements.length;i++){
            /*
            eftersom det ligger en pipe sist i strngen som 
            splittas fr vi ett tomt-element p sista 
            plats i arrayen, och den vill vi ju inte frga p
            */
            if(arrAllElements[i].length > 0){
                var obj = document.getElementById(arrAllElements[i]);
                QAIds.push(obj.id + "|" + getValue(obj));
            }
        }
        //Teknomedia.EdgeII.Website.VoteService.Vote(PollId, QAIds, voteCompleted);
    }
}

function voteCompleted(r){
    document.location.href = r;
}



/*
Generell funktion fr att verifiera formulrobjekt.
Inparameter: Alla idn p de element som ska kollas 
separerade med komma(,)
Returnerar: bool, true om allt r ok, annars false
*/
function validateObjects(){
    var retVal = true;
    var args = validateObjects.arguments;
    for(var i=0;i<args.length;i++){
        var obj = document.getElementById(args[i]);
        if(!validateObject(obj)){
            retVal = false;
        }
    }
}

/*
Validerar ett formulrobjekt
Inparameter: objektet
Return: bool, tror om ok, annars false
*/
function validateObject(object)
{
    var ok = true;
    switch(object.type){
        case "radio":
            ok = verifyRadioAndCheckbox(object);
            break;
        case "checkbox":
            ok = verifyRadioAndCheckbox(object);
            break;
        case "text":
            ok = verifyText(object);
            break;
        case "select-one":
            ok = verifySelect(object);
            break;
        case "select-multiple":
            ok = verifySelect(object);
            break;
        case "textarea":
            ok = verifyText(object);
            break;
    }
    return ok;
}

/*
Validerar ett formulrobjekt av typen checkbox eller radio
Skall ej anropas direkt, g via validateObject()!
Inparameter: objektet
Return: bool, tror om ok, annars false
*/
function verifyRadioAndCheckbox(obj){
    var objects = document.getElementsByName(obj.id);
    for(var i=0;i<objects.length;i++)
        if(objects[i].checked)
           return true;
    return false;
}

/*
Validerar ett formulrobjekt av typen text eller textarea
Skall ej anropas direkt, g via validateObject()!
Inparameter: objektet
Return: bool, tror om ok, annars false
*/
function verifyText(obj){
    if(obj.value.length > 0)
       return true;
   else
       return false;
}

/*
Validerar ett formulrobjekt av typen select
Skall ej anropas direkt, g via validateObject()!
Inparameter: objektet
Return: bool, tror om ok, annars false
*/
function verifySelect(obj){
   if(obj.selectedIndex > 0)
       return true;
   else
       return false;
}

/****** FORMULRVRDEN ******/
/*
Inparameter: formulrobjektet
Returnerar: Vrdet. Om flera val r mjliga returneras en kommaseparerad lista
*/
function getValue(object)
{
    var value = "";
    switch(object.type){
        case "radio":
            value = getRadioAndCheckboxSelectedValue(object);
            break;
        case "checkbox":
            value = getRadioAndCheckboxSelectedValue(object);
            break;
        case "text":
            value = getTextValue(object);
            break;
        case "textarea":
            value = getTextValue(object);
            break;
        case "select-one":
            value = getSelectValue(object);
            break;
        case "select-multiple":
            value = getSelectValue(object);
            break;
    }
    return value;
}

/*
Hmtar vrdet fr en checkbox eller radio
Returnerar: Vrdet. Om det r en checkbox s returneras en kommaseparerad lista med alla vrden.
*/
function getRadioAndCheckboxSelectedValue(obj){
    var objects = document.getElementsByName(obj.id);
    var selValue = "";
    for(var i=0;i<objects.length;i++){
        if(objects[i].checked){
            selValue += objects[i].value + ",";
        }           
    }
    return selValue.substring(0,selValue.length-1);
}

/*
Hmtar vrdet fr en selectbox
Returnerar: Vrdet. Om det r en multiple s returneras en kommaseparerad lista med alla vrden.
*/
function getSelectValue(obj){    
    var selValue = "";
    for (i=0; i<obj.options.length; i++) {
        if (obj.options[i].selected){
            selValue += obj.options[i].value + ",";
        }
    }
    return selValue.substring(0,selValue.length-1);
}

/*
Hmtar vrdet fr en textarea eller input type text
Returnerar: Vrdet.
*/
function getTextValue(object){
    return object.value;
}
/****** /FORMULRVRDEN ******/

/*
Hämtar Formuläret som ska ligga inne i en artikel
*/
function getPollFormComplete(){
    var args = arguments;
    if (args[0].Error === ""){
        document.getElementById(args[0].Value2).innerHTML = args[0].Value1;
        //alert(args[0].Value1);
    } else {
        document.getElementById(args[0].Value2).innerHTML = "<!--" + args[0].Error + "-->";
    }

    //document.getElementById("poll").innerHTML = r;
}


