// script by Josh Fraser (http://www.onlineaspect.com)

function calculate_time_zone(){
    var rightNow = new Date();
    var jan1 = new Date(rightNow.getFullYear(), 0, 1, 0, 0, 0, 0); // jan 1st
    var june1 = new Date(rightNow.getFullYear(), 6, 1, 0, 0, 0, 0); // june 1st
    var temp = jan1.toGMTString();

    var jan2 = new Date(temp.substring(0, temp.lastIndexOf(" ") - 1));
    temp = june1.toGMTString();
    var june2 = new Date(temp.substring(0, temp.lastIndexOf(" ") - 1));
    var std_time_offset = (jan1 - jan2) / (1000 * 60 * 60);
    var daylight_time_offset = (june1 - june2) / (1000 * 60 * 60);
    var dst;
    if (std_time_offset == daylight_time_offset) {
        dst = "0"; // daylight savings time is NOT observed
    }
    else {
        // positive is southern, negative is northern hemisphere
        var hemisphere = std_time_offset - daylight_time_offset;
        if (hemisphere >= 0) 
            std_time_offset = daylight_time_offset;
        dst = "1"; // daylight savings time is observed
    }
    var i;

    for (i = 0; i < document.getElementById("user_time_zone").options.length; i++) {
		var optionText = document.getElementById("user_time_zone").options[i].innerHTML;

		optionText.match(/\(GMT([^\(\)]*)\).*/);
        if (RegExp.$1 == convert(std_time_offset)) {
            document.getElementById("user_time_zone").selectedIndex = i;
            break;
        }
    }

    if($('user_time_zone').value == "Chennai" || $('user_time_zone').value == "Kolkata" ||
        $('user_time_zone').value == "Mumbai" || $('user_time_zone').value == "New Delhi") {
        if($('currency'))  $('currency').innerHTML = 'Rs';
            if($("user_currency")) {
            $('user_currency').value = "Rs";
            }
            if($('request_fee_max')) {
                $('request_fee_max').value = $('request_fee_max').value * 50
            }
    }
}

function convert(value){
    var hours = parseInt(value);
    value -= parseInt(value);
    value *= 60;
    var mins = parseInt(value);
    value -= parseInt(value);
    value *= 60;
    var secs = parseInt(value);
    var display_hours = hours;
    display_hours = (hours < 10 && hours > 0) ? "+0" + hours : "+" + hours; // positive
    display_hours = (hours == 0) ? "0" + hours : display_hours; // handle GMT case (00:00)
    display_hours = (hours < 0 && hours > -10) ? "-0" + Math.abs(hours) : display_hours; // neg
    mins = (mins < 10) ? "0" + mins : mins;
    return display_hours + ":" + mins;
}

onload = calculate_time_zone;