/*
    ITK3
    You didn't see this coming, did you?
*/

function itk_id(){
    var rand1 = parseInt(Math.random() * 100000) + ""
    var rand2 = parseInt(Math.random() * 100000) + ""
    return "u" + rand1 + "" + rand2
}

var itk3 = {
    version: "3.0b",
    loaded: false,
	debug: false,
	poll_interval: "",
	paths: {
	    apps: "http://cache.cloudshout.com/",
	    call: "http://cloudshout.com/",
	    comm: "http://itkserver.cloudshout.com/",
	    user: "http://socialspark.com/",
	    user_cache: "http://cache.socialspark.com/"
	},
	user: {
	    id: itk_id(),
	    name: "Unknown",
	    icon: "gfx~avatars~unknown.png",
	    looked_up: false,
	    unknown: true,
	    referer: document.referrer + "",
	    friends_loaded_at: "",
	    friends: "",
	    pending_friends_loaded_at: "",
	    pending_friends: "",
	    connections: "",
	    blogs: ""
	},
    site: {
        id: 22,
        	owner_id:   "ebe127a54e66024de1529a0c7804f5e2",
			owner_name: "CassKnits",
			owner_icon: "images/default_avatars/large_square.png",
		platform: "Wordpress",
        category: "Women's Interests",
		owner_connections: {
	twitter: 'CassKnits',
	pownce: '',
	flickr: 'cassdarrow',
	delicious: '',
	digg: '',
	youtube: 'cass@cassknits.com',
	lastfm: '',
	twitterpw: true,
	socialspark: 'CassKnits'
}

    },
    apps: {
        core: ["utilities", "element", "communications", "accounts", "palettes", "social", "date_format", "jquery-1.2.6.min"],
        izea: ["izea_profiles", "izea_friends", "izea_im", "izea_messages", "izea_installer", "izea_past_visitors"],
    	blog: ["dang_tweetshout_r1","dang_flickrshout_r1","dang_dangcheckers_r1","dang_lastfmshout_r1"],
    	user: [] // this will need to be looked up once we id the user and then set
    },
    hub: {
      w: 150,
      h: 300,
      show: "list",
      colors: {
          lightest: "#f1f1f1",
          light:    "#e5e5e5",
          medium:   "#cccccc", 
          dark:     "#666666",
          darkest:  "#222222",
          border:   "#999999",
          header:   "#e8e8e8",
          font:     "#666666",
          bg:       "#fefefe"
      }  
    },
    call_id: 0
}


/*
    ITK LOADER
    Loads various ITK functionality and applications
*/
var itk_loader = {
    
    test:                               "",
    head:                               document.getElementsByTagName('head').item(0),
    core_loaded:                        false,
    ready_for_app_loader_interval:      false,
    div_loaded:                         false,
    checking_user:                      false,
    user_connections_looked_up:         false,
    continue_loading:                   false,
    hub_loaded:                         false,
    finish_id_interval:                 false,
	poll_interval_seconds:              6000,
	
	
	generic_id: function(){
        var rand1 = parseInt(Math.random() * 100000) + ""
        var rand2 = parseInt(Math.random() * 100000) + ""
        return "u" + rand1 + "" + rand2
    },
    
	
	dom_loaded: function(){
	    itk_loader.change_polling(3)
	},
	
	
	change_polling: function(seconds){
	    clearInterval(itk3.poll_interval)
	    this.poll_interval_seconds  = parseInt(seconds) * 1000
	    itk3.poll_interval          = setInterval("itkc.poll()", this.poll_interval_seconds)
	},
	
	
    init: function(){
        if ( window.attachEvent ){
            window.attachEvent( "onbeforeunload", function() { itkc.departure() } )
            window.attachEvent( "onload", function() { itk_loader.dom_loaded() } )
        }else{
            window.onbeforeunload = function() { itkc.departure() }
            window.onload = function() { itk_loader.dom_loaded() }
        }
        for(i=0;i<itk3.apps.core.length;i++) this.install(itk3.apps.core[i], "core", "itk")
        itk_loader.core_loaded          = setInterval("itk_loader.check_for_core_loaded()", "1000")
        itk_loader.div_loaded           = setInterval("itk_loader.check_for_widgets_div_loaded()", "1000")
        itk_loader.continue_loading     = setInterval("itk_loader.check_to_continue_loading()", "1000")
    },
    
    
    check_for_widgets_div_loaded: function(){
        if(document.getElementById("itk_widgets")){
            clearInterval(itk_loader.div_loaded)
            itk_loader.div_loaded = "loaded"
            itk_widgets_div = document.getElementById("itk_widgets").style
            itk_widgets_div.lineHeight = "normal"
            itk_widgets_div.fontFamily = "Verdana"
        }
    },
    
    
    check_for_core_loaded: function(){
        if(window.itku && window.itkc && window.itka && window.itkp){
            clearInterval(itk_loader.core_loaded)
            itk_loader.core_loaded = "loaded"
        }
    },
    
    
    check_to_continue_loading: function(){
        if(itk_loader.div_loaded == "loaded" && itk_loader.core_loaded == "loaded"){
            clearInterval(itk_loader.continue_loading)
            itk_loader.installed(itkp)
			this.install("izea_activity_hub", "izea", "itk")
			this.install("izea_user_registration", "izea", "itk")
			document.addEventListener ? document.addEventListener('mousemove', itkp.set_mouse_coords, true) : document.attachEvent('onmousemove', itkp.set_mouse_coords)
			window.addEventListener ? window.addEventListener('resize', itkp.resize_window, true) : window.attachEvent('onresize', itkp.resize_window)
			itk_loader.hub_loaded = setInterval("itk_loader.check_for_hub_loaded()", "1000")
        }
    },
    
    
    check_for_hub_loaded: function(){
        if(window.izea_activity_hub && izea_activity_hub.info.installed){
            clearInterval(itk_loader.hub_loaded)
            itk_loader.hub_loaded = "loaded"
            itk_loader.check_user()
        }
    },
    
    
    set_blog_owner_icon: function(path){
        itk3.site.owner_icon = path
    },
    
    
    check_user: function(){
        if(itk_loader.checking_user || itk3.user.looked_up) return
        itk_loader.checking_user = true;
        itka.identify()
    },
    
    
    user_checked: function(){
        if(!itk3.user.unknown){
            izea_activity_hub.startup_hub("known")
            izea_activity_hub.star_my_friends()
            izea_activity_hub.set_up_friends_tab()
        }else{
            izea_activity_hub.startup_hub("unknown")
        }
        this.start_polling()
        this.app_loader()
    },
    
    
    start_polling: function(){
        clearInterval(itk3.poll_interval)
        itk3.poll_interval = setInterval("itkc.poll()", this.poll_interval_seconds)
    },
    
    
    app_loader: function(){
        for(i=0;i<itk3.apps.izea.length;i++) if(!itku.id("itk_izea_app_" + itk3.apps.izea[i])) this.install(itk3.apps.izea[i], "izea", "itk")
            for(i=0;i<itk3.apps.blog.length;i++) if(!itku.id("itk_blog_app_" + itk3.apps.blog[i])) this.install(itk3.apps.blog[i], "blog", "apps")
        izea_activity_hub.check_for_blog_apps()
        itk3.loaded = true
        for(i in itk3.apps.user){
            if(i in itk3.apps.blog) return
            if(itk3.apps.user[i] && !itku.id("itk_user_app_" + itk3.apps.izea[i])){
                if(itk_loader.test == "test"){
                    itk_loader.install_test(itk3.apps.user[i], "user", "apps") 
                }else{
                    itk_loader.install(itk3.apps.user[i], "user", "apps")
                }
            }
        }
    },
    
    
    install: function(file, type, location){
		if(typeof(file) != 'string') return
        var id = "itk_" + type + "_app_" + file
        var a = document.createElement('script')
            src = itk3.paths.apps + location + "/" + file + ".js"
            a.setAttribute("src", src)
            a.setAttribute("type", "text/javascript")
            a.setAttribute("id", id)
        if(!document.getElementById(id)) this.head.appendChild(a)
    },
    
    
    
    
    installed: function(app){
		app.info.installed = true
        if(app.info.css) itku.link_styles(app.info.id, app.info.css)
        if(parseInt(app.info.run) > 0) setTimeout(app.info.id + ".init()", app.info.run)
        if(app.info.run == "immediate") app.init()
        if(app.info.run == "after_load") itku.set_up_listeners("load", app.init )
        app_type = ["blog", "user"]
        for(i=0;i<app_type.length;i++){
            aid     = app.info.id
            ldiv    = itku.id(app_type[i] + "_app_record_" + aid + "_loading")
            if(ldiv){
                ldiv.innerHTML = izea_activity_hub.app_record_content(app.info.id, app.info.name, (itk3.paths.apps + app.info.icon_big), app.info.desc)
                ldiv.id = app_type[i] + "_app_record_" + aid
                ldiv["onmouseover"] = function(){ itkp.show_tip(app.info.name, escape(app.info.desc), true) }
            }
        }
        if(app.info.btn && document.getElementById(app.info.id+"_button")) itku.display_button(document.getElementById(app.info.id+"_button"), app.info.btn, app.info.id + ".init()")
    }
    
    
}
itk_loader.init()
function itk3_diggpop(obj){ dang_diggpop.api_response(obj) }
function itk_user_message(m){}