﻿window.AutoSweet = {
    resizeFrame: function(id, height) {
        var frame = document.getElementById(id);
        if (frame && 'height' in frame) {
            var newHeight = parseInt(height);
            if (frame.height != newHeight) {
                if (navigator.userAgent.toLowerCase().indexOf('safari') == -1) {
                    newHeight += 30;
                }
                frame.height = newHeight;
            }
        }
    },

    createFrame: function(targetUrl, helperUrl, frameId, frameWidth) {
        if (!frameId) {
            frameId = ('as' + Math.random()).replace('.', '');
        }
        var stringWidth = '';
        if (frameWidth) {
            stringWidth = ' width="' + frameWidth + '"';
        }
        if (targetUrl.toLowerCase().indexOf('http') != 0) {
            targetUrl = 'http://' + targetUrl;
        }
        var args = AutoSweet.getQueryParams(window.location + '');
        for (var prop in args) {
            targetUrl = AutoSweet.insertQueryInURL(targetUrl, prop, args[prop]);
        }
        targetUrl = AutoSweet.insertQueryInURL(targetUrl, 'frameid', escape(frameId));
        targetUrl = AutoSweet.insertQueryInURL(targetUrl, 'framehelper', escape(helperUrl));
        document.write('<iframe id="' + frameId + '" src="' + targetUrl + '" height="1000" frameborder="0" scrolling="no"' + stringWidth + '></iframe>');
    },

    lookForResizeParams: function() {
        var qParams = AutoSweet.getQueryParams(window.location + '');
        if (qParams['height'] && qParams['frameid']) {
            try {
                if ('AutoSweet' in window.parent.parent && 'resizeFrame' in window.parent.parent.AutoSweet) {
                    window.parent.parent.AutoSweet.resizeFrame(unescape(qParams['frameid']), unescape(qParams['height']));
                }
            } catch (e) { }
        }
    },

    insertQueryInURL: function(url, key, val) {
        var args = AutoSweet.getQueryParams(url);
        args[key] = val;
        var qindex = url.indexOf('?');
        var hindex = url.indexOf('#');
        var newUrl = url;
        if (qindex > -1) {
            newUrl = url.substring(0, qindex);
        } else if (hindex > -1) {
            newUrl = url.substring(0, hindex);
        }
        newUrl += '?';
        for (var prop in args) {
            newUrl += prop + '=' + args[prop] + '&';
        }
        newUrl = newUrl.substring(0, newUrl.length - 1);
        if (hindex > -1) {
            newUrl += url.substring(hindex);
        }
        return newUrl;
    },

    getQueryParams: function(url) {
        var args = {};
        var qindex = url.indexOf('?');
        var end = url.indexOf('#');
        var query;
        if (qindex > -1) {
            if (end > -1) {
                query = url.substring(qindex + 1, end);
            } else {
                query = url.substring(qindex + 1);
            }
            var pairs = query.split('&');
            for (var i = 0; i < pairs.length; i++) {
                var pos = pairs[i].indexOf("=");
                if (pos > -1) {
                    var argname = pairs[i].substring(0, pos);
                    var value = pairs[i].substring(pos + 1);
                    args[argname] = value;
                }
            }
        }
        return args;
    }
};